# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.3.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 _ITKImageGridPython



from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _itkBinShrinkImageFilterPython
else:
    import _itkBinShrinkImageFilterPython

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.ITKCommonBasePython
import itk.itkMatrixPython
import itk.vnl_matrixPython
import itk.stdcomplexPython
import itk.pyBasePython
import itk.vnl_vectorPython
import itk.vnl_matrix_fixedPython
import itk.itkCovariantVectorPython
import itk.itkFixedArrayPython
import itk.vnl_vector_refPython
import itk.itkVectorPython
import itk.itkPointPython
import itk.itkImageToImageFilterAPython
import itk.itkVectorImagePython
import itk.itkVariableLengthVectorPython
import itk.itkIndexPython
import itk.itkSizePython
import itk.itkOffsetPython
import itk.itkImagePython
import itk.itkSymmetricSecondRankTensorPython
import itk.itkRGBAPixelPython
import itk.itkImageRegionPython
import itk.itkRGBPixelPython
import itk.itkImageToImageFilterCommonPython
import itk.itkImageSourcePython
import itk.itkImageSourceCommonPython
import itk.itkPhasedArray3DSpecialCoordinatesImagePython
import itk.itkImageToImageFilterBPython

def itkBinShrinkImageFilterICF2ICF2_New():
    return itkBinShrinkImageFilterICF2ICF2.New()

class itkBinShrinkImageFilterICF2ICF2(itk.itkImageToImageFilterBPython.itkImageToImageFilterICF2ICF2):
    r"""Proxy of C++ itkBinShrinkImageFilterICF2ICF2 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__() -> itkBinShrinkImageFilterICF2ICF2_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF2ICF2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterICF2ICF2_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF2ICF2_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI2

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF2ICF2_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF2ICF2_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI2"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF2ICF2_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF2ICF2_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF2ICF2_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF2ICF2_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF2ICF2_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterICF2ICF2

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF2ICF2_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterICF2ICF2 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:

          itkBinShrinkImageFilterICF2ICF2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterICF2ICF2 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF2ICF2_swigregister(itkBinShrinkImageFilterICF2ICF2)

def itkBinShrinkImageFilterICF3ICF3_New():
    return itkBinShrinkImageFilterICF3ICF3.New()

class itkBinShrinkImageFilterICF3ICF3(itk.itkImageToImageFilterBPython.itkImageToImageFilterICF3ICF3):
    r"""Proxy of C++ itkBinShrinkImageFilterICF3ICF3 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__() -> itkBinShrinkImageFilterICF3ICF3_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF3ICF3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterICF3ICF3_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF3ICF3_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI3

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF3ICF3_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF3ICF3_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI3"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF3ICF3_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF3ICF3_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF3ICF3_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF3ICF3_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF3ICF3_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterICF3ICF3

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF3ICF3_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterICF3ICF3 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:

          itkBinShrinkImageFilterICF3ICF3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterICF3ICF3 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICF3ICF3_swigregister(itkBinShrinkImageFilterICF3ICF3)

def itkBinShrinkImageFilterICVF22ICVF22_New():
    return itkBinShrinkImageFilterICVF22ICVF22.New()

class itkBinShrinkImageFilterICVF22ICVF22(itk.itkImageToImageFilterAPython.itkImageToImageFilterICVF22ICVF22):
    r"""Proxy of C++ itkBinShrinkImageFilterICVF22ICVF22 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__() -> itkBinShrinkImageFilterICVF22ICVF22_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF22ICVF22___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterICVF22ICVF22_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF22ICVF22_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI2

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF22ICVF22_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF22ICVF22_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI2"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF22ICVF22_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF22ICVF22_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF22ICVF22_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF22ICVF22_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF22ICVF22_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterICVF22ICVF22

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF22ICVF22_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterICVF22ICVF22 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:

          itkBinShrinkImageFilterICVF22ICVF22.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterICVF22ICVF22 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF22ICVF22_swigregister(itkBinShrinkImageFilterICVF22ICVF22)

def itkBinShrinkImageFilterICVF23ICVF23_New():
    return itkBinShrinkImageFilterICVF23ICVF23.New()

class itkBinShrinkImageFilterICVF23ICVF23(itk.itkImageToImageFilterAPython.itkImageToImageFilterICVF23ICVF23):
    r"""Proxy of C++ itkBinShrinkImageFilterICVF23ICVF23 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__() -> itkBinShrinkImageFilterICVF23ICVF23_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF23ICVF23___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterICVF23ICVF23_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF23ICVF23_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI3

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF23ICVF23_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF23ICVF23_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI3"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF23ICVF23_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF23ICVF23_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF23ICVF23_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF23ICVF23_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF23ICVF23_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterICVF23ICVF23

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF23ICVF23_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterICVF23ICVF23 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:

          itkBinShrinkImageFilterICVF23ICVF23.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterICVF23ICVF23 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF23ICVF23_swigregister(itkBinShrinkImageFilterICVF23ICVF23)

def itkBinShrinkImageFilterICVF32ICVF32_New():
    return itkBinShrinkImageFilterICVF32ICVF32.New()

class itkBinShrinkImageFilterICVF32ICVF32(itk.itkImageToImageFilterAPython.itkImageToImageFilterICVF32ICVF32):
    r"""Proxy of C++ itkBinShrinkImageFilterICVF32ICVF32 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__() -> itkBinShrinkImageFilterICVF32ICVF32_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF32ICVF32___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterICVF32ICVF32_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF32ICVF32_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI2

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF32ICVF32_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF32ICVF32_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI2"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF32ICVF32_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF32ICVF32_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF32ICVF32_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF32ICVF32_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF32ICVF32_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterICVF32ICVF32

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF32ICVF32_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterICVF32ICVF32 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:

          itkBinShrinkImageFilterICVF32ICVF32.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterICVF32ICVF32 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF32ICVF32_swigregister(itkBinShrinkImageFilterICVF32ICVF32)

def itkBinShrinkImageFilterICVF33ICVF33_New():
    return itkBinShrinkImageFilterICVF33ICVF33.New()

class itkBinShrinkImageFilterICVF33ICVF33(itk.itkImageToImageFilterAPython.itkImageToImageFilterICVF33ICVF33):
    r"""Proxy of C++ itkBinShrinkImageFilterICVF33ICVF33 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__() -> itkBinShrinkImageFilterICVF33ICVF33_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF33ICVF33___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterICVF33ICVF33_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF33ICVF33_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI3

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF33ICVF33_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF33ICVF33_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI3"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF33ICVF33_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF33ICVF33_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF33ICVF33_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF33ICVF33_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF33ICVF33_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterICVF33ICVF33

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF33ICVF33_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterICVF33ICVF33 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:

          itkBinShrinkImageFilterICVF33ICVF33.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterICVF33ICVF33 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF33ICVF33_swigregister(itkBinShrinkImageFilterICVF33ICVF33)

def itkBinShrinkImageFilterICVF42ICVF42_New():
    return itkBinShrinkImageFilterICVF42ICVF42.New()

class itkBinShrinkImageFilterICVF42ICVF42(itk.itkImageToImageFilterAPython.itkImageToImageFilterICVF42ICVF42):
    r"""Proxy of C++ itkBinShrinkImageFilterICVF42ICVF42 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__() -> itkBinShrinkImageFilterICVF42ICVF42_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF42ICVF42___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterICVF42ICVF42_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF42ICVF42_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI2

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF42ICVF42_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF42ICVF42_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI2"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF42ICVF42_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF42ICVF42_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF42ICVF42_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF42ICVF42_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF42ICVF42_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterICVF42ICVF42

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF42ICVF42_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterICVF42ICVF42 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:

          itkBinShrinkImageFilterICVF42ICVF42.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterICVF42ICVF42 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF42ICVF42_swigregister(itkBinShrinkImageFilterICVF42ICVF42)

def itkBinShrinkImageFilterICVF43ICVF43_New():
    return itkBinShrinkImageFilterICVF43ICVF43.New()

class itkBinShrinkImageFilterICVF43ICVF43(itk.itkImageToImageFilterAPython.itkImageToImageFilterICVF43ICVF43):
    r"""Proxy of C++ itkBinShrinkImageFilterICVF43ICVF43 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__() -> itkBinShrinkImageFilterICVF43ICVF43_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF43ICVF43___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterICVF43ICVF43_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF43ICVF43_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI3

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF43ICVF43_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF43ICVF43_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI3"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF43ICVF43_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF43ICVF43_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF43ICVF43_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF43ICVF43_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF43ICVF43_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterICVF43ICVF43

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF43ICVF43_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterICVF43ICVF43 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:

          itkBinShrinkImageFilterICVF43ICVF43.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterICVF43ICVF43 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterICVF43ICVF43_swigregister(itkBinShrinkImageFilterICVF43ICVF43)

def itkBinShrinkImageFilterIF2IF2_New():
    return itkBinShrinkImageFilterIF2IF2.New()

class itkBinShrinkImageFilterIF2IF2(itk.itkImageToImageFilterAPython.itkImageToImageFilterIF2IF2):
    r"""Proxy of C++ itkBinShrinkImageFilterIF2IF2 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__() -> itkBinShrinkImageFilterIF2IF2_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF2IF2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterIF2IF2_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF2IF2_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI2

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF2IF2_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF2IF2_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI2"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF2IF2_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF2IF2_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF2IF2_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF2IF2_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF2IF2_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterIF2IF2

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF2IF2_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterIF2IF2 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:

          itkBinShrinkImageFilterIF2IF2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterIF2IF2 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF2IF2_swigregister(itkBinShrinkImageFilterIF2IF2)

def itkBinShrinkImageFilterIF3IF3_New():
    return itkBinShrinkImageFilterIF3IF3.New()

class itkBinShrinkImageFilterIF3IF3(itk.itkImageToImageFilterAPython.itkImageToImageFilterIF3IF3):
    r"""Proxy of C++ itkBinShrinkImageFilterIF3IF3 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__() -> itkBinShrinkImageFilterIF3IF3_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF3IF3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterIF3IF3_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF3IF3_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI3

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF3IF3_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF3IF3_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI3"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF3IF3_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF3IF3_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF3IF3_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF3IF3_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF3IF3_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterIF3IF3

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF3IF3_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterIF3IF3 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:

          itkBinShrinkImageFilterIF3IF3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterIF3IF3 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIF3IF3_swigregister(itkBinShrinkImageFilterIF3IF3)

def itkBinShrinkImageFilterIRGBAUC2IRGBAUC2_New():
    return itkBinShrinkImageFilterIRGBAUC2IRGBAUC2.New()

class itkBinShrinkImageFilterIRGBAUC2IRGBAUC2(itk.itkImageToImageFilterAPython.itkImageToImageFilterIRGBAUC2IRGBAUC2):
    r"""Proxy of C++ itkBinShrinkImageFilterIRGBAUC2IRGBAUC2 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__() -> itkBinShrinkImageFilterIRGBAUC2IRGBAUC2_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC2IRGBAUC2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterIRGBAUC2IRGBAUC2_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC2IRGBAUC2_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI2

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC2IRGBAUC2_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC2IRGBAUC2_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI2"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC2IRGBAUC2_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC2IRGBAUC2_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC2IRGBAUC2_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC2IRGBAUC2_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC2IRGBAUC2_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterIRGBAUC2IRGBAUC2

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC2IRGBAUC2_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterIRGBAUC2IRGBAUC2 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:

          itkBinShrinkImageFilterIRGBAUC2IRGBAUC2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterIRGBAUC2IRGBAUC2 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC2IRGBAUC2_swigregister(itkBinShrinkImageFilterIRGBAUC2IRGBAUC2)

def itkBinShrinkImageFilterIRGBAUC3IRGBAUC3_New():
    return itkBinShrinkImageFilterIRGBAUC3IRGBAUC3.New()

class itkBinShrinkImageFilterIRGBAUC3IRGBAUC3(itk.itkImageToImageFilterAPython.itkImageToImageFilterIRGBAUC3IRGBAUC3):
    r"""Proxy of C++ itkBinShrinkImageFilterIRGBAUC3IRGBAUC3 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__() -> itkBinShrinkImageFilterIRGBAUC3IRGBAUC3_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC3IRGBAUC3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterIRGBAUC3IRGBAUC3_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC3IRGBAUC3_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI3

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC3IRGBAUC3_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC3IRGBAUC3_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI3"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC3IRGBAUC3_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC3IRGBAUC3_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC3IRGBAUC3_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC3IRGBAUC3_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC3IRGBAUC3_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterIRGBAUC3IRGBAUC3

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC3IRGBAUC3_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterIRGBAUC3IRGBAUC3 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:

          itkBinShrinkImageFilterIRGBAUC3IRGBAUC3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterIRGBAUC3IRGBAUC3 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBAUC3IRGBAUC3_swigregister(itkBinShrinkImageFilterIRGBAUC3IRGBAUC3)

def itkBinShrinkImageFilterIRGBUC2IRGBUC2_New():
    return itkBinShrinkImageFilterIRGBUC2IRGBUC2.New()

class itkBinShrinkImageFilterIRGBUC2IRGBUC2(itk.itkImageToImageFilterAPython.itkImageToImageFilterIRGBUC2IRGBUC2):
    r"""Proxy of C++ itkBinShrinkImageFilterIRGBUC2IRGBUC2 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__() -> itkBinShrinkImageFilterIRGBUC2IRGBUC2_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC2IRGBUC2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterIRGBUC2IRGBUC2_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC2IRGBUC2_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI2

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC2IRGBUC2_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC2IRGBUC2_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI2"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC2IRGBUC2_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC2IRGBUC2_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC2IRGBUC2_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC2IRGBUC2_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC2IRGBUC2_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterIRGBUC2IRGBUC2

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC2IRGBUC2_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterIRGBUC2IRGBUC2 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:

          itkBinShrinkImageFilterIRGBUC2IRGBUC2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterIRGBUC2IRGBUC2 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC2IRGBUC2_swigregister(itkBinShrinkImageFilterIRGBUC2IRGBUC2)

def itkBinShrinkImageFilterIRGBUC3IRGBUC3_New():
    return itkBinShrinkImageFilterIRGBUC3IRGBUC3.New()

class itkBinShrinkImageFilterIRGBUC3IRGBUC3(itk.itkImageToImageFilterAPython.itkImageToImageFilterIRGBUC3IRGBUC3):
    r"""Proxy of C++ itkBinShrinkImageFilterIRGBUC3IRGBUC3 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__() -> itkBinShrinkImageFilterIRGBUC3IRGBUC3_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC3IRGBUC3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterIRGBUC3IRGBUC3_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC3IRGBUC3_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI3

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC3IRGBUC3_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC3IRGBUC3_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI3"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC3IRGBUC3_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC3IRGBUC3_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC3IRGBUC3_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC3IRGBUC3_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC3IRGBUC3_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterIRGBUC3IRGBUC3

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC3IRGBUC3_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterIRGBUC3IRGBUC3 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:

          itkBinShrinkImageFilterIRGBUC3IRGBUC3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterIRGBUC3IRGBUC3 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIRGBUC3IRGBUC3_swigregister(itkBinShrinkImageFilterIRGBUC3IRGBUC3)

def itkBinShrinkImageFilterISS2ISS2_New():
    return itkBinShrinkImageFilterISS2ISS2.New()

class itkBinShrinkImageFilterISS2ISS2(itk.itkImageToImageFilterAPython.itkImageToImageFilterISS2ISS2):
    r"""Proxy of C++ itkBinShrinkImageFilterISS2ISS2 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__() -> itkBinShrinkImageFilterISS2ISS2_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS2ISS2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterISS2ISS2_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS2ISS2_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI2

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS2ISS2_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS2ISS2_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI2"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS2ISS2_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS2ISS2_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS2ISS2_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS2ISS2_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS2ISS2_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterISS2ISS2

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS2ISS2_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterISS2ISS2 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:

          itkBinShrinkImageFilterISS2ISS2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterISS2ISS2 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS2ISS2_swigregister(itkBinShrinkImageFilterISS2ISS2)

def itkBinShrinkImageFilterISS3ISS3_New():
    return itkBinShrinkImageFilterISS3ISS3.New()

class itkBinShrinkImageFilterISS3ISS3(itk.itkImageToImageFilterAPython.itkImageToImageFilterISS3ISS3):
    r"""Proxy of C++ itkBinShrinkImageFilterISS3ISS3 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__() -> itkBinShrinkImageFilterISS3ISS3_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS3ISS3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterISS3ISS3_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS3ISS3_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI3

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS3ISS3_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS3ISS3_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI3"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS3ISS3_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS3ISS3_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS3ISS3_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS3ISS3_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS3ISS3_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterISS3ISS3

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS3ISS3_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterISS3ISS3 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:

          itkBinShrinkImageFilterISS3ISS3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterISS3ISS3 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterISS3ISS3_swigregister(itkBinShrinkImageFilterISS3ISS3)

def itkBinShrinkImageFilterIUC2IUC2_New():
    return itkBinShrinkImageFilterIUC2IUC2.New()

class itkBinShrinkImageFilterIUC2IUC2(itk.itkImageToImageFilterAPython.itkImageToImageFilterIUC2IUC2):
    r"""Proxy of C++ itkBinShrinkImageFilterIUC2IUC2 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__() -> itkBinShrinkImageFilterIUC2IUC2_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC2IUC2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterIUC2IUC2_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC2IUC2_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI2

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC2IUC2_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC2IUC2_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI2"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC2IUC2_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC2IUC2_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC2IUC2_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC2IUC2_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC2IUC2_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterIUC2IUC2

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC2IUC2_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterIUC2IUC2 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:

          itkBinShrinkImageFilterIUC2IUC2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterIUC2IUC2 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC2IUC2_swigregister(itkBinShrinkImageFilterIUC2IUC2)

def itkBinShrinkImageFilterIUC3IUC3_New():
    return itkBinShrinkImageFilterIUC3IUC3.New()

class itkBinShrinkImageFilterIUC3IUC3(itk.itkImageToImageFilterAPython.itkImageToImageFilterIUC3IUC3):
    r"""Proxy of C++ itkBinShrinkImageFilterIUC3IUC3 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__() -> itkBinShrinkImageFilterIUC3IUC3_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC3IUC3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterIUC3IUC3_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC3IUC3_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI3

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC3IUC3_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC3IUC3_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI3"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC3IUC3_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC3IUC3_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC3IUC3_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC3IUC3_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC3IUC3_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterIUC3IUC3

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC3IUC3_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterIUC3IUC3 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:

          itkBinShrinkImageFilterIUC3IUC3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterIUC3IUC3 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIUC3IUC3_swigregister(itkBinShrinkImageFilterIUC3IUC3)

def itkBinShrinkImageFilterIVF22IVF22_New():
    return itkBinShrinkImageFilterIVF22IVF22.New()

class itkBinShrinkImageFilterIVF22IVF22(itk.itkImageToImageFilterAPython.itkImageToImageFilterIVF22IVF22):
    r"""Proxy of C++ itkBinShrinkImageFilterIVF22IVF22 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__() -> itkBinShrinkImageFilterIVF22IVF22_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF22IVF22___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterIVF22IVF22_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF22IVF22_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI2

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF22IVF22_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF22IVF22_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI2"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF22IVF22_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF22IVF22_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF22IVF22_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF22IVF22_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF22IVF22_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterIVF22IVF22

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF22IVF22_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterIVF22IVF22 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:

          itkBinShrinkImageFilterIVF22IVF22.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterIVF22IVF22 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF22IVF22_swigregister(itkBinShrinkImageFilterIVF22IVF22)

def itkBinShrinkImageFilterIVF23IVF23_New():
    return itkBinShrinkImageFilterIVF23IVF23.New()

class itkBinShrinkImageFilterIVF23IVF23(itk.itkImageToImageFilterAPython.itkImageToImageFilterIVF23IVF23):
    r"""Proxy of C++ itkBinShrinkImageFilterIVF23IVF23 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__() -> itkBinShrinkImageFilterIVF23IVF23_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF23IVF23___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterIVF23IVF23_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF23IVF23_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI3

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF23IVF23_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF23IVF23_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI3"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF23IVF23_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF23IVF23_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF23IVF23_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF23IVF23_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF23IVF23_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterIVF23IVF23

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF23IVF23_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterIVF23IVF23 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:

          itkBinShrinkImageFilterIVF23IVF23.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterIVF23IVF23 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF23IVF23_swigregister(itkBinShrinkImageFilterIVF23IVF23)

def itkBinShrinkImageFilterIVF32IVF32_New():
    return itkBinShrinkImageFilterIVF32IVF32.New()

class itkBinShrinkImageFilterIVF32IVF32(itk.itkImageToImageFilterAPython.itkImageToImageFilterIVF32IVF32):
    r"""Proxy of C++ itkBinShrinkImageFilterIVF32IVF32 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__() -> itkBinShrinkImageFilterIVF32IVF32_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF32IVF32___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterIVF32IVF32_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF32IVF32_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI2

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF32IVF32_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF32IVF32_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI2"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF32IVF32_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF32IVF32_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF32IVF32_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF32IVF32_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF32IVF32_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterIVF32IVF32

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF32IVF32_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterIVF32IVF32 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:

          itkBinShrinkImageFilterIVF32IVF32.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterIVF32IVF32 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF32IVF32_swigregister(itkBinShrinkImageFilterIVF32IVF32)

def itkBinShrinkImageFilterIVF33IVF33_New():
    return itkBinShrinkImageFilterIVF33IVF33.New()

class itkBinShrinkImageFilterIVF33IVF33(itk.itkImageToImageFilterAPython.itkImageToImageFilterIVF33IVF33):
    r"""Proxy of C++ itkBinShrinkImageFilterIVF33IVF33 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__() -> itkBinShrinkImageFilterIVF33IVF33_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF33IVF33___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterIVF33IVF33_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF33IVF33_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI3

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF33IVF33_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF33IVF33_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI3"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF33IVF33_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF33IVF33_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF33IVF33_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF33IVF33_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF33IVF33_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterIVF33IVF33

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF33IVF33_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterIVF33IVF33 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:

          itkBinShrinkImageFilterIVF33IVF33.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterIVF33IVF33 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF33IVF33_swigregister(itkBinShrinkImageFilterIVF33IVF33)

def itkBinShrinkImageFilterIVF42IVF42_New():
    return itkBinShrinkImageFilterIVF42IVF42.New()

class itkBinShrinkImageFilterIVF42IVF42(itk.itkImageToImageFilterAPython.itkImageToImageFilterIVF42IVF42):
    r"""Proxy of C++ itkBinShrinkImageFilterIVF42IVF42 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__() -> itkBinShrinkImageFilterIVF42IVF42_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF42IVF42___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterIVF42IVF42_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF42IVF42_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI2

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF42IVF42_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF42IVF42_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI2"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF42IVF42_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF42IVF42_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF42IVF42_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF42IVF42_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF42IVF42_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterIVF42IVF42

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF42IVF42_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterIVF42IVF42 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:

          itkBinShrinkImageFilterIVF42IVF42.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterIVF42IVF42 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF42IVF42_swigregister(itkBinShrinkImageFilterIVF42IVF42)

def itkBinShrinkImageFilterIVF43IVF43_New():
    return itkBinShrinkImageFilterIVF43IVF43.New()

class itkBinShrinkImageFilterIVF43IVF43(itk.itkImageToImageFilterAPython.itkImageToImageFilterIVF43IVF43):
    r"""Proxy of C++ itkBinShrinkImageFilterIVF43IVF43 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__() -> itkBinShrinkImageFilterIVF43IVF43_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF43IVF43___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkBinShrinkImageFilterIVF43IVF43_Pointer"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF43IVF43_Clone(self)

    def SetShrinkFactors(self, *args):
        r"""
        SetShrinkFactors(self, _arg)

        Parameters
        ----------
        _arg: itkFixedArrayUI3

        SetShrinkFactors(self, factor)

        Parameters
        ----------
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF43IVF43_SetShrinkFactors(self, *args)

    def SetShrinkFactor(self, i, factor):
        r"""
        SetShrinkFactor(self, i, factor)

        Parameters
        ----------
        i: unsigned int
        factor: unsigned int

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF43IVF43_SetShrinkFactor(self, i, factor)

    def GetShrinkFactors(self):
        r"""GetShrinkFactors(self) -> itkFixedArrayUI3"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF43IVF43_GetShrinkFactors(self)

    def GenerateOutputInformation(self):
        r"""GenerateOutputInformation(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF43IVF43_GenerateOutputInformation(self)

    def GenerateInputRequestedRegion(self):
        r"""GenerateInputRequestedRegion(self)"""
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF43IVF43_GenerateInputRequestedRegion(self)
    InputConvertibleToOutputCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF43IVF43_InputConvertibleToOutputCheck
    
    SameDimensionCheck = _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF43IVF43_SameDimensionCheck
    
    __swig_destroy__ = _itkBinShrinkImageFilterPython.delete_itkBinShrinkImageFilterIVF43IVF43

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

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

        """
        return _itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF43IVF43_cast(obj)

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

        Create a new object of the class itkBinShrinkImageFilterIVF43IVF43 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:

          itkBinShrinkImageFilterIVF43IVF43.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkBinShrinkImageFilterIVF43IVF43 in _itkBinShrinkImageFilterPython:
_itkBinShrinkImageFilterPython.itkBinShrinkImageFilterIVF43IVF43_swigregister(itkBinShrinkImageFilterIVF43IVF43)

from itk.support import helpers
import itk.support.types as itkt
from typing import Sequence, Tuple, Union

@helpers.accept_array_like_xarray_torch
def bin_shrink_image_filter(*args: itkt.ImageLike,  shrink_factors: Union[int, Sequence[int]]=..., shrink_factor: int=...,**kwargs)-> itkt.ImageSourceReturn:
    """Functional interface for BinShrinkImageFilter"""
    import itk

    kwarg_typehints = { 'shrink_factors':shrink_factors,'shrink_factor':shrink_factor }
    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.BinShrinkImageFilter.New(*args, **kwargs)

    return instance.__internal_call__()

def bin_shrink_image_filter_init_docstring():
    import itk
    from itk.support import template_class

    filter_class = itk.ITKImageGrid.BinShrinkImageFilter
    bin_shrink_image_filter.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

    bin_shrink_image_filter.__doc__ = filter_object.__doc__



