# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.4.1
#
# Do not make changes to this file unless you know what you are doing - modify
# the SWIG interface file instead.


import collections

from sys import version_info as _version_info
if _version_info < (3, 7, 0):
    raise RuntimeError("Python 3.7 or later required")

from . import _ITKCommonPython


from . import _ITKCommonPython



from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if getattr(globals().get("__spec__"), "parent", None) or __package__ or "." in __name__:
    from . import _itkImageDuplicatorPython
else:
    import _itkImageDuplicatorPython

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "this":
            set(self, name, value)
        elif name == "thisown":
            self.this.own(value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


if _swig_python_version_info[0:2] >= (3, 3):
    import collections.abc
else:
    import collections

import itk.itkVectorImagePython
import itk.itkIndexPython
import itk.itkSizePython
import itk.pyBasePython
import itk.itkOffsetPython
import itk.itkVariableLengthVectorPython
import itk.stdcomplexPython
import itk.ITKCommonBasePython
import itk.itkMatrixPython
import itk.vnl_vectorPython
import itk.vnl_matrixPython
import itk.vnl_matrix_fixedPython
import itk.itkCovariantVectorPython
import itk.itkFixedArrayPython
import itk.vnl_vector_refPython
import itk.itkVectorPython
import itk.itkPointPython
import itk.itkImagePython
import itk.itkRGBAPixelPython
import itk.itkRGBPixelPython
import itk.itkSymmetricSecondRankTensorPython
import itk.itkImageRegionPython

def itkImageDuplicatorICVF22_New():
    return itkImageDuplicatorICVF22.New()

class itkImageDuplicatorICVF22(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorICVF22 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorICVF22_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF22___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorICVF22_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF22_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageCVF22 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF22_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageCVF22
        GetOutput(self) -> itkImageCVF22
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF22_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF22_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorICVF22

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorICVF22

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF22_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorICVF22

        Create a new object of the class itkImageDuplicatorICVF22 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorICVF22.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorICVF22.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorICVF22.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorICVF22 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorICVF22_swigregister(itkImageDuplicatorICVF22)

def itkImageDuplicatorICVF23_New():
    return itkImageDuplicatorICVF23.New()

class itkImageDuplicatorICVF23(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorICVF23 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorICVF23_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF23___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorICVF23_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF23_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageCVF23 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF23_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageCVF23
        GetOutput(self) -> itkImageCVF23
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF23_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF23_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorICVF23

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorICVF23

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF23_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorICVF23

        Create a new object of the class itkImageDuplicatorICVF23 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorICVF23.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorICVF23.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorICVF23.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorICVF23 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorICVF23_swigregister(itkImageDuplicatorICVF23)

def itkImageDuplicatorICVF32_New():
    return itkImageDuplicatorICVF32.New()

class itkImageDuplicatorICVF32(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorICVF32 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorICVF32_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF32___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorICVF32_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF32_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageCVF32 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF32_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageCVF32
        GetOutput(self) -> itkImageCVF32
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF32_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF32_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorICVF32

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorICVF32

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF32_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorICVF32

        Create a new object of the class itkImageDuplicatorICVF32 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorICVF32.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorICVF32.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorICVF32.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorICVF32 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorICVF32_swigregister(itkImageDuplicatorICVF32)

def itkImageDuplicatorICVF33_New():
    return itkImageDuplicatorICVF33.New()

class itkImageDuplicatorICVF33(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorICVF33 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorICVF33_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF33___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorICVF33_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF33_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageCVF33 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF33_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageCVF33
        GetOutput(self) -> itkImageCVF33
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF33_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF33_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorICVF33

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorICVF33

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF33_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorICVF33

        Create a new object of the class itkImageDuplicatorICVF33 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorICVF33.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorICVF33.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorICVF33.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorICVF33 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorICVF33_swigregister(itkImageDuplicatorICVF33)

def itkImageDuplicatorICVF42_New():
    return itkImageDuplicatorICVF42.New()

class itkImageDuplicatorICVF42(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorICVF42 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorICVF42_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF42___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorICVF42_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF42_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageCVF42 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF42_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageCVF42
        GetOutput(self) -> itkImageCVF42
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF42_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF42_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorICVF42

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorICVF42

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF42_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorICVF42

        Create a new object of the class itkImageDuplicatorICVF42 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorICVF42.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorICVF42.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorICVF42.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorICVF42 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorICVF42_swigregister(itkImageDuplicatorICVF42)

def itkImageDuplicatorICVF43_New():
    return itkImageDuplicatorICVF43.New()

class itkImageDuplicatorICVF43(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorICVF43 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorICVF43_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF43___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorICVF43_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF43_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageCVF43 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF43_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageCVF43
        GetOutput(self) -> itkImageCVF43
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF43_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF43_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorICVF43

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorICVF43

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorICVF43_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorICVF43

        Create a new object of the class itkImageDuplicatorICVF43 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorICVF43.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorICVF43.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorICVF43.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorICVF43 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorICVF43_swigregister(itkImageDuplicatorICVF43)

def itkImageDuplicatorID2_New():
    return itkImageDuplicatorID2.New()

class itkImageDuplicatorID2(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorID2 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorID2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorID2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorID2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorID2_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageD2 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorID2_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageD2
        GetOutput(self) -> itkImageD2
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorID2_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorID2_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorID2

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorID2

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorID2_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorID2

        Create a new object of the class itkImageDuplicatorID2 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorID2.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorID2.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorID2.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorID2 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorID2_swigregister(itkImageDuplicatorID2)

def itkImageDuplicatorID3_New():
    return itkImageDuplicatorID3.New()

class itkImageDuplicatorID3(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorID3 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorID3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorID3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorID3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorID3_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageD3 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorID3_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageD3
        GetOutput(self) -> itkImageD3
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorID3_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorID3_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorID3

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorID3

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorID3_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorID3

        Create a new object of the class itkImageDuplicatorID3 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorID3.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorID3.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorID3.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorID3 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorID3_swigregister(itkImageDuplicatorID3)

def itkImageDuplicatorIF2_New():
    return itkImageDuplicatorIF2.New()

class itkImageDuplicatorIF2(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIF2 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIF2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIF2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIF2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIF2_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageF2 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIF2_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageF2
        GetOutput(self) -> itkImageF2
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIF2_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIF2_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIF2

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIF2

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIF2_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIF2

        Create a new object of the class itkImageDuplicatorIF2 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIF2.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIF2.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIF2.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIF2 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIF2_swigregister(itkImageDuplicatorIF2)

def itkImageDuplicatorIF3_New():
    return itkImageDuplicatorIF3.New()

class itkImageDuplicatorIF3(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIF3 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIF3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIF3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIF3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIF3_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageF3 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIF3_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageF3
        GetOutput(self) -> itkImageF3
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIF3_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIF3_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIF3

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIF3

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIF3_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIF3

        Create a new object of the class itkImageDuplicatorIF3 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIF3.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIF3.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIF3.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIF3 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIF3_swigregister(itkImageDuplicatorIF3)

def itkImageDuplicatorIRGBAUC2_New():
    return itkImageDuplicatorIRGBAUC2.New()

class itkImageDuplicatorIRGBAUC2(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIRGBAUC2 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIRGBAUC2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBAUC2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIRGBAUC2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBAUC2_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageRGBAUC2 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBAUC2_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageRGBAUC2
        GetOutput(self) -> itkImageRGBAUC2
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBAUC2_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBAUC2_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIRGBAUC2

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIRGBAUC2

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBAUC2_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIRGBAUC2

        Create a new object of the class itkImageDuplicatorIRGBAUC2 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIRGBAUC2.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIRGBAUC2.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIRGBAUC2.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIRGBAUC2 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIRGBAUC2_swigregister(itkImageDuplicatorIRGBAUC2)

def itkImageDuplicatorIRGBAUC3_New():
    return itkImageDuplicatorIRGBAUC3.New()

class itkImageDuplicatorIRGBAUC3(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIRGBAUC3 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIRGBAUC3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBAUC3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIRGBAUC3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBAUC3_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageRGBAUC3 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBAUC3_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageRGBAUC3
        GetOutput(self) -> itkImageRGBAUC3
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBAUC3_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBAUC3_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIRGBAUC3

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIRGBAUC3

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBAUC3_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIRGBAUC3

        Create a new object of the class itkImageDuplicatorIRGBAUC3 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIRGBAUC3.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIRGBAUC3.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIRGBAUC3.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIRGBAUC3 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIRGBAUC3_swigregister(itkImageDuplicatorIRGBAUC3)

def itkImageDuplicatorIRGBUC2_New():
    return itkImageDuplicatorIRGBUC2.New()

class itkImageDuplicatorIRGBUC2(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIRGBUC2 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIRGBUC2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBUC2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIRGBUC2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBUC2_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageRGBUC2 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBUC2_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageRGBUC2
        GetOutput(self) -> itkImageRGBUC2
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBUC2_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBUC2_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIRGBUC2

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIRGBUC2

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBUC2_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIRGBUC2

        Create a new object of the class itkImageDuplicatorIRGBUC2 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIRGBUC2.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIRGBUC2.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIRGBUC2.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIRGBUC2 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIRGBUC2_swigregister(itkImageDuplicatorIRGBUC2)

def itkImageDuplicatorIRGBUC3_New():
    return itkImageDuplicatorIRGBUC3.New()

class itkImageDuplicatorIRGBUC3(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIRGBUC3 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIRGBUC3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBUC3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIRGBUC3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBUC3_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageRGBUC3 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBUC3_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageRGBUC3
        GetOutput(self) -> itkImageRGBUC3
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBUC3_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBUC3_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIRGBUC3

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIRGBUC3

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIRGBUC3_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIRGBUC3

        Create a new object of the class itkImageDuplicatorIRGBUC3 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIRGBUC3.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIRGBUC3.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIRGBUC3.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIRGBUC3 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIRGBUC3_swigregister(itkImageDuplicatorIRGBUC3)

def itkImageDuplicatorISI2_New():
    return itkImageDuplicatorISI2.New()

class itkImageDuplicatorISI2(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorISI2 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorISI2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISI2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorISI2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISI2_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageSI2 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISI2_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageSI2
        GetOutput(self) -> itkImageSI2
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISI2_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISI2_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorISI2

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorISI2

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISI2_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorISI2

        Create a new object of the class itkImageDuplicatorISI2 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorISI2.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorISI2.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorISI2.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorISI2 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorISI2_swigregister(itkImageDuplicatorISI2)

def itkImageDuplicatorISI3_New():
    return itkImageDuplicatorISI3.New()

class itkImageDuplicatorISI3(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorISI3 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorISI3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISI3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorISI3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISI3_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageSI3 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISI3_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageSI3
        GetOutput(self) -> itkImageSI3
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISI3_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISI3_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorISI3

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorISI3

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISI3_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorISI3

        Create a new object of the class itkImageDuplicatorISI3 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorISI3.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorISI3.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorISI3.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorISI3 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorISI3_swigregister(itkImageDuplicatorISI3)

def itkImageDuplicatorISS2_New():
    return itkImageDuplicatorISS2.New()

class itkImageDuplicatorISS2(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorISS2 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorISS2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISS2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorISS2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISS2_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageSS2 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISS2_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageSS2
        GetOutput(self) -> itkImageSS2
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISS2_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISS2_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorISS2

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorISS2

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISS2_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorISS2

        Create a new object of the class itkImageDuplicatorISS2 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorISS2.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorISS2.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorISS2.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorISS2 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorISS2_swigregister(itkImageDuplicatorISS2)

def itkImageDuplicatorISS3_New():
    return itkImageDuplicatorISS3.New()

class itkImageDuplicatorISS3(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorISS3 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorISS3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISS3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorISS3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISS3_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageSS3 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISS3_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageSS3
        GetOutput(self) -> itkImageSS3
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISS3_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISS3_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorISS3

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorISS3

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISS3_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorISS3

        Create a new object of the class itkImageDuplicatorISS3 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorISS3.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorISS3.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorISS3.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorISS3 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorISS3_swigregister(itkImageDuplicatorISS3)

def itkImageDuplicatorISSRTD22_New():
    return itkImageDuplicatorISSRTD22.New()

class itkImageDuplicatorISSRTD22(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorISSRTD22 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorISSRTD22_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTD22___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorISSRTD22_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTD22_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageSSRTD22 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTD22_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageSSRTD22
        GetOutput(self) -> itkImageSSRTD22
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTD22_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTD22_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorISSRTD22

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorISSRTD22

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTD22_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorISSRTD22

        Create a new object of the class itkImageDuplicatorISSRTD22 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorISSRTD22.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorISSRTD22.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorISSRTD22.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorISSRTD22 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorISSRTD22_swigregister(itkImageDuplicatorISSRTD22)

def itkImageDuplicatorISSRTD33_New():
    return itkImageDuplicatorISSRTD33.New()

class itkImageDuplicatorISSRTD33(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorISSRTD33 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorISSRTD33_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTD33___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorISSRTD33_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTD33_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageSSRTD33 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTD33_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageSSRTD33
        GetOutput(self) -> itkImageSSRTD33
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTD33_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTD33_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorISSRTD33

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorISSRTD33

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTD33_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorISSRTD33

        Create a new object of the class itkImageDuplicatorISSRTD33 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorISSRTD33.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorISSRTD33.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorISSRTD33.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorISSRTD33 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorISSRTD33_swigregister(itkImageDuplicatorISSRTD33)

def itkImageDuplicatorISSRTF22_New():
    return itkImageDuplicatorISSRTF22.New()

class itkImageDuplicatorISSRTF22(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorISSRTF22 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorISSRTF22_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTF22___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorISSRTF22_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTF22_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageSSRTF22 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTF22_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageSSRTF22
        GetOutput(self) -> itkImageSSRTF22
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTF22_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTF22_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorISSRTF22

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorISSRTF22

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTF22_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorISSRTF22

        Create a new object of the class itkImageDuplicatorISSRTF22 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorISSRTF22.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorISSRTF22.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorISSRTF22.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorISSRTF22 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorISSRTF22_swigregister(itkImageDuplicatorISSRTF22)

def itkImageDuplicatorISSRTF33_New():
    return itkImageDuplicatorISSRTF33.New()

class itkImageDuplicatorISSRTF33(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorISSRTF33 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorISSRTF33_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTF33___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorISSRTF33_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTF33_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageSSRTF33 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTF33_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageSSRTF33
        GetOutput(self) -> itkImageSSRTF33
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTF33_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTF33_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorISSRTF33

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorISSRTF33

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorISSRTF33_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorISSRTF33

        Create a new object of the class itkImageDuplicatorISSRTF33 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorISSRTF33.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorISSRTF33.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorISSRTF33.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorISSRTF33 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorISSRTF33_swigregister(itkImageDuplicatorISSRTF33)

def itkImageDuplicatorIUC2_New():
    return itkImageDuplicatorIUC2.New()

class itkImageDuplicatorIUC2(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIUC2 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIUC2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUC2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIUC2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUC2_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageUC2 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUC2_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageUC2
        GetOutput(self) -> itkImageUC2
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUC2_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUC2_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIUC2

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIUC2

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUC2_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIUC2

        Create a new object of the class itkImageDuplicatorIUC2 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIUC2.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIUC2.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIUC2.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIUC2 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIUC2_swigregister(itkImageDuplicatorIUC2)

def itkImageDuplicatorIUC3_New():
    return itkImageDuplicatorIUC3.New()

class itkImageDuplicatorIUC3(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIUC3 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIUC3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUC3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIUC3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUC3_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageUC3 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUC3_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageUC3
        GetOutput(self) -> itkImageUC3
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUC3_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUC3_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIUC3

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIUC3

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUC3_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIUC3

        Create a new object of the class itkImageDuplicatorIUC3 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIUC3.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIUC3.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIUC3.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIUC3 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIUC3_swigregister(itkImageDuplicatorIUC3)

def itkImageDuplicatorIUI2_New():
    return itkImageDuplicatorIUI2.New()

class itkImageDuplicatorIUI2(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIUI2 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIUI2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUI2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIUI2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUI2_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageUI2 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUI2_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageUI2
        GetOutput(self) -> itkImageUI2
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUI2_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUI2_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIUI2

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIUI2

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUI2_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIUI2

        Create a new object of the class itkImageDuplicatorIUI2 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIUI2.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIUI2.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIUI2.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIUI2 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIUI2_swigregister(itkImageDuplicatorIUI2)

def itkImageDuplicatorIUI3_New():
    return itkImageDuplicatorIUI3.New()

class itkImageDuplicatorIUI3(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIUI3 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIUI3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUI3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIUI3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUI3_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageUI3 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUI3_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageUI3
        GetOutput(self) -> itkImageUI3
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUI3_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUI3_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIUI3

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIUI3

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUI3_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIUI3

        Create a new object of the class itkImageDuplicatorIUI3 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIUI3.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIUI3.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIUI3.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIUI3 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIUI3_swigregister(itkImageDuplicatorIUI3)

def itkImageDuplicatorIUL2_New():
    return itkImageDuplicatorIUL2.New()

class itkImageDuplicatorIUL2(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIUL2 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIUL2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUL2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIUL2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUL2_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageUL2 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUL2_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageUL2
        GetOutput(self) -> itkImageUL2
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUL2_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUL2_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIUL2

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIUL2

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUL2_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIUL2

        Create a new object of the class itkImageDuplicatorIUL2 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIUL2.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIUL2.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIUL2.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIUL2 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIUL2_swigregister(itkImageDuplicatorIUL2)

def itkImageDuplicatorIUL3_New():
    return itkImageDuplicatorIUL3.New()

class itkImageDuplicatorIUL3(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIUL3 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIUL3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUL3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIUL3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUL3_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageUL3 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUL3_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageUL3
        GetOutput(self) -> itkImageUL3
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUL3_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIUL3_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIUL3

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIUL3

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIUL3_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIUL3

        Create a new object of the class itkImageDuplicatorIUL3 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIUL3.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIUL3.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIUL3.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIUL3 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIUL3_swigregister(itkImageDuplicatorIUL3)

def itkImageDuplicatorIULL2_New():
    return itkImageDuplicatorIULL2.New()

class itkImageDuplicatorIULL2(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIULL2 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIULL2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIULL2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIULL2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIULL2_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageULL2 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIULL2_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageULL2
        GetOutput(self) -> itkImageULL2
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIULL2_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIULL2_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIULL2

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIULL2

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIULL2_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIULL2

        Create a new object of the class itkImageDuplicatorIULL2 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIULL2.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIULL2.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIULL2.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIULL2 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIULL2_swigregister(itkImageDuplicatorIULL2)

def itkImageDuplicatorIULL3_New():
    return itkImageDuplicatorIULL3.New()

class itkImageDuplicatorIULL3(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIULL3 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIULL3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIULL3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIULL3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIULL3_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageULL3 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIULL3_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageULL3
        GetOutput(self) -> itkImageULL3
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIULL3_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIULL3_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIULL3

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIULL3

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIULL3_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIULL3

        Create a new object of the class itkImageDuplicatorIULL3 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIULL3.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIULL3.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIULL3.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIULL3 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIULL3_swigregister(itkImageDuplicatorIULL3)

def itkImageDuplicatorIVF22_New():
    return itkImageDuplicatorIVF22.New()

class itkImageDuplicatorIVF22(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIVF22 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIVF22_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF22___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIVF22_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF22_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageVF22 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF22_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageVF22
        GetOutput(self) -> itkImageVF22
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF22_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF22_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIVF22

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIVF22

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF22_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIVF22

        Create a new object of the class itkImageDuplicatorIVF22 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIVF22.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIVF22.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIVF22.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIVF22 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIVF22_swigregister(itkImageDuplicatorIVF22)

def itkImageDuplicatorIVF23_New():
    return itkImageDuplicatorIVF23.New()

class itkImageDuplicatorIVF23(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIVF23 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIVF23_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF23___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIVF23_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF23_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageVF23 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF23_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageVF23
        GetOutput(self) -> itkImageVF23
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF23_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF23_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIVF23

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIVF23

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF23_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIVF23

        Create a new object of the class itkImageDuplicatorIVF23 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIVF23.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIVF23.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIVF23.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIVF23 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIVF23_swigregister(itkImageDuplicatorIVF23)

def itkImageDuplicatorIVF32_New():
    return itkImageDuplicatorIVF32.New()

class itkImageDuplicatorIVF32(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIVF32 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIVF32_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF32___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIVF32_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF32_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageVF32 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF32_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageVF32
        GetOutput(self) -> itkImageVF32
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF32_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF32_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIVF32

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIVF32

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF32_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIVF32

        Create a new object of the class itkImageDuplicatorIVF32 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIVF32.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIVF32.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIVF32.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIVF32 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIVF32_swigregister(itkImageDuplicatorIVF32)

def itkImageDuplicatorIVF33_New():
    return itkImageDuplicatorIVF33.New()

class itkImageDuplicatorIVF33(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIVF33 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIVF33_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF33___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIVF33_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF33_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageVF33 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF33_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageVF33
        GetOutput(self) -> itkImageVF33
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF33_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF33_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIVF33

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIVF33

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF33_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIVF33

        Create a new object of the class itkImageDuplicatorIVF33 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIVF33.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIVF33.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIVF33.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIVF33 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIVF33_swigregister(itkImageDuplicatorIVF33)

def itkImageDuplicatorIVF42_New():
    return itkImageDuplicatorIVF42.New()

class itkImageDuplicatorIVF42(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIVF42 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIVF42_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF42___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIVF42_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF42_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageVF42 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF42_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageVF42
        GetOutput(self) -> itkImageVF42
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF42_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF42_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIVF42

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIVF42

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF42_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIVF42

        Create a new object of the class itkImageDuplicatorIVF42 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIVF42.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIVF42.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIVF42.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIVF42 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIVF42_swigregister(itkImageDuplicatorIVF42)

def itkImageDuplicatorIVF43_New():
    return itkImageDuplicatorIVF43.New()

class itkImageDuplicatorIVF43(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorIVF43 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorIVF43_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF43___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorIVF43_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF43_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkImageVF43 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF43_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkImageVF43
        GetOutput(self) -> itkImageVF43
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF43_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF43_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorIVF43

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorIVF43

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorIVF43_cast(obj)

    def __internal_call__(self):
        """Create an object, update with the inputs and
        attributes, and return the result.

        The syntax is the same as the one used in New().
        Update() is ran once the input are changed, and
        the current output.
        """
        self.Update()
        return self.GetOutput()


    def New(*args, **kargs):
        """New() -> itkImageDuplicatorIVF43

        Create a new object of the class itkImageDuplicatorIVF43 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorIVF43.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorIVF43.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorIVF43.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorIVF43 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorIVF43_swigregister(itkImageDuplicatorIVF43)

def itkImageDuplicatorVICF2_New():
    return itkImageDuplicatorVICF2.New()

class itkImageDuplicatorVICF2(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorVICF2 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorVICF2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVICF2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorVICF2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVICF2_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkVectorImageCF2 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVICF2_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkVectorImageCF2
        GetOutput(self) -> itkVectorImageCF2
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVICF2_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVICF2_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorVICF2

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorVICF2

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVICF2_cast(obj)

    def New(*args, **kargs):
        """New() -> itkImageDuplicatorVICF2

        Create a new object of the class itkImageDuplicatorVICF2 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorVICF2.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorVICF2.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorVICF2.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorVICF2 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorVICF2_swigregister(itkImageDuplicatorVICF2)

def itkImageDuplicatorVICF3_New():
    return itkImageDuplicatorVICF3.New()

class itkImageDuplicatorVICF3(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorVICF3 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorVICF3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVICF3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorVICF3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVICF3_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkVectorImageCF3 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVICF3_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkVectorImageCF3
        GetOutput(self) -> itkVectorImageCF3
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVICF3_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVICF3_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorVICF3

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorVICF3

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVICF3_cast(obj)

    def New(*args, **kargs):
        """New() -> itkImageDuplicatorVICF3

        Create a new object of the class itkImageDuplicatorVICF3 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorVICF3.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorVICF3.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorVICF3.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorVICF3 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorVICF3_swigregister(itkImageDuplicatorVICF3)

def itkImageDuplicatorVIF2_New():
    return itkImageDuplicatorVIF2.New()

class itkImageDuplicatorVIF2(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorVIF2 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorVIF2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVIF2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorVIF2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVIF2_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkVectorImageF2 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVIF2_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkVectorImageF2
        GetOutput(self) -> itkVectorImageF2
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVIF2_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVIF2_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorVIF2

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorVIF2

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVIF2_cast(obj)

    def New(*args, **kargs):
        """New() -> itkImageDuplicatorVIF2

        Create a new object of the class itkImageDuplicatorVIF2 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorVIF2.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorVIF2.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorVIF2.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorVIF2 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorVIF2_swigregister(itkImageDuplicatorVIF2)

def itkImageDuplicatorVIF3_New():
    return itkImageDuplicatorVIF3.New()

class itkImageDuplicatorVIF3(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorVIF3 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorVIF3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVIF3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorVIF3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVIF3_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkVectorImageF3 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVIF3_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkVectorImageF3
        GetOutput(self) -> itkVectorImageF3
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVIF3_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVIF3_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorVIF3

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorVIF3

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVIF3_cast(obj)

    def New(*args, **kargs):
        """New() -> itkImageDuplicatorVIF3

        Create a new object of the class itkImageDuplicatorVIF3 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorVIF3.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorVIF3.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorVIF3.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorVIF3 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorVIF3_swigregister(itkImageDuplicatorVIF3)

def itkImageDuplicatorVISS2_New():
    return itkImageDuplicatorVISS2.New()

class itkImageDuplicatorVISS2(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorVISS2 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorVISS2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVISS2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorVISS2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVISS2_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkVectorImageSS2 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVISS2_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkVectorImageSS2
        GetOutput(self) -> itkVectorImageSS2
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVISS2_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVISS2_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorVISS2

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorVISS2

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVISS2_cast(obj)

    def New(*args, **kargs):
        """New() -> itkImageDuplicatorVISS2

        Create a new object of the class itkImageDuplicatorVISS2 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorVISS2.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorVISS2.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorVISS2.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorVISS2 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorVISS2_swigregister(itkImageDuplicatorVISS2)

def itkImageDuplicatorVISS3_New():
    return itkImageDuplicatorVISS3.New()

class itkImageDuplicatorVISS3(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorVISS3 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorVISS3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVISS3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorVISS3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVISS3_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkVectorImageSS3 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVISS3_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkVectorImageSS3
        GetOutput(self) -> itkVectorImageSS3
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVISS3_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVISS3_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorVISS3

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorVISS3

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVISS3_cast(obj)

    def New(*args, **kargs):
        """New() -> itkImageDuplicatorVISS3

        Create a new object of the class itkImageDuplicatorVISS3 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorVISS3.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorVISS3.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorVISS3.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorVISS3 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorVISS3_swigregister(itkImageDuplicatorVISS3)

def itkImageDuplicatorVIUC2_New():
    return itkImageDuplicatorVIUC2.New()

class itkImageDuplicatorVIUC2(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorVIUC2 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorVIUC2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVIUC2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorVIUC2_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVIUC2_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkVectorImageUC2 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVIUC2_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkVectorImageUC2
        GetOutput(self) -> itkVectorImageUC2
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVIUC2_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVIUC2_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorVIUC2

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorVIUC2

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVIUC2_cast(obj)

    def New(*args, **kargs):
        """New() -> itkImageDuplicatorVIUC2

        Create a new object of the class itkImageDuplicatorVIUC2 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorVIUC2.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorVIUC2.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorVIUC2.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorVIUC2 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorVIUC2_swigregister(itkImageDuplicatorVIUC2)

def itkImageDuplicatorVIUC3_New():
    return itkImageDuplicatorVIUC3.New()

class itkImageDuplicatorVIUC3(itk.ITKCommonBasePython.itkObject):
    r"""Proxy of C++ itkImageDuplicatorVIUC3 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkImageDuplicatorVIUC3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVIUC3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkImageDuplicatorVIUC3_Pointer"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVIUC3_Clone(self)

    def SetInputImage(self, _arg):
        r"""
        SetInputImage(self, _arg)

        Parameters
        ----------
        _arg: itkVectorImageUC3 const *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVIUC3_SetInputImage(self, _arg)

    def GetOutput(self, *args):
        r"""
        GetOutput(self) -> itkVectorImageUC3
        GetOutput(self) -> itkVectorImageUC3
        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVIUC3_GetOutput(self, *args)

    def Update(self):
        r"""Update(self)"""
        return _itkImageDuplicatorPython.itkImageDuplicatorVIUC3_Update(self)
    __swig_destroy__ = _itkImageDuplicatorPython.delete_itkImageDuplicatorVIUC3

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkImageDuplicatorVIUC3

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkImageDuplicatorPython.itkImageDuplicatorVIUC3_cast(obj)

    def New(*args, **kargs):
        """New() -> itkImageDuplicatorVIUC3

        Create a new object of the class itkImageDuplicatorVIUC3 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkImageDuplicatorVIUC3.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkImageDuplicatorVIUC3.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkImageDuplicatorVIUC3.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkImageDuplicatorVIUC3 in _itkImageDuplicatorPython:
_itkImageDuplicatorPython.itkImageDuplicatorVIUC3_swigregister(itkImageDuplicatorVIUC3)

from itk.support import helpers
import itk.support.types as itkt
from typing import Sequence, Tuple, Union

@helpers.accept_array_like_xarray_torch
def image_duplicator(*args,  debug: bool=..., reference_count: int=..., global_warning_display: bool=..., meta_data_dictionary=..., object_name: str=...,**kwargs):
    """Functional interface for ImageDuplicator"""
    import itk

    kwarg_typehints = { 'debug':debug,'reference_count':reference_count,'global_warning_display':global_warning_display,'meta_data_dictionary':meta_data_dictionary,'object_name':object_name }
    specified_kwarg_typehints = { k:v for (k,v) in kwarg_typehints.items() if kwarg_typehints[k] is not ... }
    kwargs.update(specified_kwarg_typehints)


    instance = itk.ImageDuplicator.New(*args, **kwargs)

    return instance.__internal_call__()

def image_duplicator_init_docstring():
    import itk
    from itk.support import template_class

    filter_class = itk.ITKCommon.ImageDuplicator
    image_duplicator.process_object = filter_class
    is_template = isinstance(filter_class, template_class.itkTemplate)
    if is_template:
        filter_object = filter_class.values()[0]
    else:
        filter_object = filter_class

    image_duplicator.__doc__ = filter_object.__doc__



