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


import collections

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

from . import _ITKCommonPython


from . import _ITKImageStatisticsPython



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

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_matrix_fixedPython
import itk.vnl_vectorPython
import itk.stdcomplexPython
import itk.pyBasePython
import itk.vnl_matrixPython
import itk.itkPointPython
import itk.vnl_vector_refPython
import itk.itkFixedArrayPython
import itk.itkVectorPython
import itk.itkCovariantVectorPython
import itk.itkSimpleDataObjectDecoratorPython
import itk.itkRGBPixelPython
import itk.itkArrayPython
import itk.itkRGBAPixelPython
import itk.itkImageRegionPython
import itk.itkSizePython
import itk.itkIndexPython
import itk.itkOffsetPython
import itk.itkImageSinkPython
import itk.itkImagePython
import itk.itkSymmetricSecondRankTensorPython
import itk.itkImageToImageFilterCommonPython
import itk.itkVectorImagePython
import itk.itkVariableLengthVectorPython

def itkMinimumMaximumImageFilterIF2_New():
    return itkMinimumMaximumImageFilterIF2.New()

class itkMinimumMaximumImageFilterIF2(itk.itkImageSinkPython.itkImageSinkIF2):
    r"""Proxy of C++ itkMinimumMaximumImageFilterIF2 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__() -> itkMinimumMaximumImageFilterIF2_Pointer"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkMinimumMaximumImageFilterIF2_Pointer"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF2_Clone(self)

    def GetMinimumOutput(self):
        r"""GetMinimumOutput(self) -> itkSimpleDataObjectDecoratorF"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF2_GetMinimumOutput(self)

    def GetMinimum(self):
        r"""GetMinimum(self) -> float const &"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF2_GetMinimum(self)

    def GetMaximumOutput(self):
        r"""GetMaximumOutput(self) -> itkSimpleDataObjectDecoratorF"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF2_GetMaximumOutput(self)

    def GetMaximum(self):
        r"""GetMaximum(self) -> float const &"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF2_GetMaximum(self)

    def SetNumberOfStreamDivisions(self, n):
        r"""
        SetNumberOfStreamDivisions(self, n)

        Parameters
        ----------
        n: unsigned int const

        """
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF2_SetNumberOfStreamDivisions(self, n)

    def GetNumberOfStreamDivisions(self):
        r"""GetNumberOfStreamDivisions(self) -> unsigned int"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF2_GetNumberOfStreamDivisions(self)
    LessThanComparableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF2_LessThanComparableCheck
    
    GreaterThanComparableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF2_GreaterThanComparableCheck
    
    OStreamWritableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF2_OStreamWritableCheck
    
    __swig_destroy__ = _itkMinimumMaximumImageFilterPython.delete_itkMinimumMaximumImageFilterIF2

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

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

        """
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF2_cast(obj)

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

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

          itkMinimumMaximumImageFilterIF2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkMinimumMaximumImageFilterIF2 in _itkMinimumMaximumImageFilterPython:
_itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF2_swigregister(itkMinimumMaximumImageFilterIF2)

def itkMinimumMaximumImageFilterIF3_New():
    return itkMinimumMaximumImageFilterIF3.New()

class itkMinimumMaximumImageFilterIF3(itk.itkImageSinkPython.itkImageSinkIF3):
    r"""Proxy of C++ itkMinimumMaximumImageFilterIF3 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__() -> itkMinimumMaximumImageFilterIF3_Pointer"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkMinimumMaximumImageFilterIF3_Pointer"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF3_Clone(self)

    def GetMinimumOutput(self):
        r"""GetMinimumOutput(self) -> itkSimpleDataObjectDecoratorF"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF3_GetMinimumOutput(self)

    def GetMinimum(self):
        r"""GetMinimum(self) -> float const &"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF3_GetMinimum(self)

    def GetMaximumOutput(self):
        r"""GetMaximumOutput(self) -> itkSimpleDataObjectDecoratorF"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF3_GetMaximumOutput(self)

    def GetMaximum(self):
        r"""GetMaximum(self) -> float const &"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF3_GetMaximum(self)

    def SetNumberOfStreamDivisions(self, n):
        r"""
        SetNumberOfStreamDivisions(self, n)

        Parameters
        ----------
        n: unsigned int const

        """
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF3_SetNumberOfStreamDivisions(self, n)

    def GetNumberOfStreamDivisions(self):
        r"""GetNumberOfStreamDivisions(self) -> unsigned int"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF3_GetNumberOfStreamDivisions(self)
    LessThanComparableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF3_LessThanComparableCheck
    
    GreaterThanComparableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF3_GreaterThanComparableCheck
    
    OStreamWritableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF3_OStreamWritableCheck
    
    __swig_destroy__ = _itkMinimumMaximumImageFilterPython.delete_itkMinimumMaximumImageFilterIF3

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

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

        """
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF3_cast(obj)

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

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

          itkMinimumMaximumImageFilterIF3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkMinimumMaximumImageFilterIF3 in _itkMinimumMaximumImageFilterPython:
_itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIF3_swigregister(itkMinimumMaximumImageFilterIF3)

def itkMinimumMaximumImageFilterISS2_New():
    return itkMinimumMaximumImageFilterISS2.New()

class itkMinimumMaximumImageFilterISS2(itk.itkImageSinkPython.itkImageSinkISS2):
    r"""Proxy of C++ itkMinimumMaximumImageFilterISS2 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__() -> itkMinimumMaximumImageFilterISS2_Pointer"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkMinimumMaximumImageFilterISS2_Pointer"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS2_Clone(self)

    def GetMinimumOutput(self):
        r"""GetMinimumOutput(self) -> itkSimpleDataObjectDecoratorSS"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS2_GetMinimumOutput(self)

    def GetMinimum(self):
        r"""GetMinimum(self) -> short const &"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS2_GetMinimum(self)

    def GetMaximumOutput(self):
        r"""GetMaximumOutput(self) -> itkSimpleDataObjectDecoratorSS"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS2_GetMaximumOutput(self)

    def GetMaximum(self):
        r"""GetMaximum(self) -> short const &"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS2_GetMaximum(self)

    def SetNumberOfStreamDivisions(self, n):
        r"""
        SetNumberOfStreamDivisions(self, n)

        Parameters
        ----------
        n: unsigned int const

        """
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS2_SetNumberOfStreamDivisions(self, n)

    def GetNumberOfStreamDivisions(self):
        r"""GetNumberOfStreamDivisions(self) -> unsigned int"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS2_GetNumberOfStreamDivisions(self)
    LessThanComparableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS2_LessThanComparableCheck
    
    GreaterThanComparableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS2_GreaterThanComparableCheck
    
    OStreamWritableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS2_OStreamWritableCheck
    
    __swig_destroy__ = _itkMinimumMaximumImageFilterPython.delete_itkMinimumMaximumImageFilterISS2

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

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

        """
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS2_cast(obj)

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

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

          itkMinimumMaximumImageFilterISS2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkMinimumMaximumImageFilterISS2 in _itkMinimumMaximumImageFilterPython:
_itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS2_swigregister(itkMinimumMaximumImageFilterISS2)

def itkMinimumMaximumImageFilterISS3_New():
    return itkMinimumMaximumImageFilterISS3.New()

class itkMinimumMaximumImageFilterISS3(itk.itkImageSinkPython.itkImageSinkISS3):
    r"""Proxy of C++ itkMinimumMaximumImageFilterISS3 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__() -> itkMinimumMaximumImageFilterISS3_Pointer"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkMinimumMaximumImageFilterISS3_Pointer"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS3_Clone(self)

    def GetMinimumOutput(self):
        r"""GetMinimumOutput(self) -> itkSimpleDataObjectDecoratorSS"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS3_GetMinimumOutput(self)

    def GetMinimum(self):
        r"""GetMinimum(self) -> short const &"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS3_GetMinimum(self)

    def GetMaximumOutput(self):
        r"""GetMaximumOutput(self) -> itkSimpleDataObjectDecoratorSS"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS3_GetMaximumOutput(self)

    def GetMaximum(self):
        r"""GetMaximum(self) -> short const &"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS3_GetMaximum(self)

    def SetNumberOfStreamDivisions(self, n):
        r"""
        SetNumberOfStreamDivisions(self, n)

        Parameters
        ----------
        n: unsigned int const

        """
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS3_SetNumberOfStreamDivisions(self, n)

    def GetNumberOfStreamDivisions(self):
        r"""GetNumberOfStreamDivisions(self) -> unsigned int"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS3_GetNumberOfStreamDivisions(self)
    LessThanComparableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS3_LessThanComparableCheck
    
    GreaterThanComparableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS3_GreaterThanComparableCheck
    
    OStreamWritableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS3_OStreamWritableCheck
    
    __swig_destroy__ = _itkMinimumMaximumImageFilterPython.delete_itkMinimumMaximumImageFilterISS3

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

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

        """
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS3_cast(obj)

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

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

          itkMinimumMaximumImageFilterISS3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkMinimumMaximumImageFilterISS3 in _itkMinimumMaximumImageFilterPython:
_itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterISS3_swigregister(itkMinimumMaximumImageFilterISS3)

def itkMinimumMaximumImageFilterIUC2_New():
    return itkMinimumMaximumImageFilterIUC2.New()

class itkMinimumMaximumImageFilterIUC2(itk.itkImageSinkPython.itkImageSinkIUC2):
    r"""Proxy of C++ itkMinimumMaximumImageFilterIUC2 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__() -> itkMinimumMaximumImageFilterIUC2_Pointer"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC2___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkMinimumMaximumImageFilterIUC2_Pointer"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC2_Clone(self)

    def GetMinimumOutput(self):
        r"""GetMinimumOutput(self) -> itkSimpleDataObjectDecoratorUC"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC2_GetMinimumOutput(self)

    def GetMinimum(self):
        r"""GetMinimum(self) -> unsigned char const &"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC2_GetMinimum(self)

    def GetMaximumOutput(self):
        r"""GetMaximumOutput(self) -> itkSimpleDataObjectDecoratorUC"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC2_GetMaximumOutput(self)

    def GetMaximum(self):
        r"""GetMaximum(self) -> unsigned char const &"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC2_GetMaximum(self)

    def SetNumberOfStreamDivisions(self, n):
        r"""
        SetNumberOfStreamDivisions(self, n)

        Parameters
        ----------
        n: unsigned int const

        """
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC2_SetNumberOfStreamDivisions(self, n)

    def GetNumberOfStreamDivisions(self):
        r"""GetNumberOfStreamDivisions(self) -> unsigned int"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC2_GetNumberOfStreamDivisions(self)
    LessThanComparableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC2_LessThanComparableCheck
    
    GreaterThanComparableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC2_GreaterThanComparableCheck
    
    OStreamWritableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC2_OStreamWritableCheck
    
    __swig_destroy__ = _itkMinimumMaximumImageFilterPython.delete_itkMinimumMaximumImageFilterIUC2

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

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

        """
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC2_cast(obj)

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

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

          itkMinimumMaximumImageFilterIUC2.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkMinimumMaximumImageFilterIUC2 in _itkMinimumMaximumImageFilterPython:
_itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC2_swigregister(itkMinimumMaximumImageFilterIUC2)

def itkMinimumMaximumImageFilterIUC3_New():
    return itkMinimumMaximumImageFilterIUC3.New()

class itkMinimumMaximumImageFilterIUC3(itk.itkImageSinkPython.itkImageSinkIUC3):
    r"""Proxy of C++ itkMinimumMaximumImageFilterIUC3 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__() -> itkMinimumMaximumImageFilterIUC3_Pointer"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC3___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkMinimumMaximumImageFilterIUC3_Pointer"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC3_Clone(self)

    def GetMinimumOutput(self):
        r"""GetMinimumOutput(self) -> itkSimpleDataObjectDecoratorUC"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC3_GetMinimumOutput(self)

    def GetMinimum(self):
        r"""GetMinimum(self) -> unsigned char const &"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC3_GetMinimum(self)

    def GetMaximumOutput(self):
        r"""GetMaximumOutput(self) -> itkSimpleDataObjectDecoratorUC"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC3_GetMaximumOutput(self)

    def GetMaximum(self):
        r"""GetMaximum(self) -> unsigned char const &"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC3_GetMaximum(self)

    def SetNumberOfStreamDivisions(self, n):
        r"""
        SetNumberOfStreamDivisions(self, n)

        Parameters
        ----------
        n: unsigned int const

        """
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC3_SetNumberOfStreamDivisions(self, n)

    def GetNumberOfStreamDivisions(self):
        r"""GetNumberOfStreamDivisions(self) -> unsigned int"""
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC3_GetNumberOfStreamDivisions(self)
    LessThanComparableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC3_LessThanComparableCheck
    
    GreaterThanComparableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC3_GreaterThanComparableCheck
    
    OStreamWritableCheck = _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC3_OStreamWritableCheck
    
    __swig_destroy__ = _itkMinimumMaximumImageFilterPython.delete_itkMinimumMaximumImageFilterIUC3

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

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

        """
        return _itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC3_cast(obj)

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

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

          itkMinimumMaximumImageFilterIUC3.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkMinimumMaximumImageFilterIUC3 in _itkMinimumMaximumImageFilterPython:
_itkMinimumMaximumImageFilterPython.itkMinimumMaximumImageFilterIUC3_swigregister(itkMinimumMaximumImageFilterIUC3)

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

@helpers.accept_array_like_xarray_torch
def minimum_maximum_image_filter(*args: itkt.ImageLike,  number_of_stream_divisions: int=...,**kwargs):
    """Functional interface for MinimumMaximumImageFilter"""
    import itk

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

    return instance.__internal_call__()

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

    filter_class = itk.ITKImageStatistics.MinimumMaximumImageFilter
    minimum_maximum_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

    minimum_maximum_image_filter.__doc__ = filter_object.__doc__



