# 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 _ITKStatisticsPython



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 _itkHistogramPython
else:
    import _itkHistogramPython

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.itkArrayPython
import itk.vnl_vectorPython
import itk.vnl_matrixPython
import itk.stdcomplexPython
import itk.pyBasePython
import itk.itkSamplePython
import itk.itkVectorPython
import itk.vnl_vector_refPython
import itk.itkFixedArrayPython
import itk.ITKCommonBasePython
import itk.itkMatrixPython
import itk.itkCovariantVectorPython
import itk.vnl_matrix_fixedPython
import itk.itkPointPython

def itkHistogramD_New():
    return itkHistogramD.New()

class itkHistogramD(itk.itkSamplePython.itkSampleAD):
    r"""Proxy of C++ itkHistogramD 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__() -> itkHistogramD_Pointer"""
        return _itkHistogramPython.itkHistogramD___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkHistogramD_Pointer"""
        return _itkHistogramPython.itkHistogramD_Clone(self)

    def Initialize(self, *args):
        r"""
        Initialize(self, size)

        Parameters
        ----------
        size: itkArrayUL const &

        Initialize(self, size, lowerBound, upperBound)

        Parameters
        ----------
        size: itkArrayUL const &
        lowerBound: itkArrayD &
        upperBound: itkArrayD &

        """
        return _itkHistogramPython.itkHistogramD_Initialize(self, *args)

    def SetToZero(self):
        r"""SetToZero(self)"""
        return _itkHistogramPython.itkHistogramD_SetToZero(self)

    def GetIndex(self, *args):
        r"""
        GetIndex(self, measurement, index) -> bool

        Parameters
        ----------
        measurement: itkArrayD const &
        index: itkArraySL &

        GetIndex(self, id) -> itkArraySL

        Parameters
        ----------
        id: unsigned long

        """
        return _itkHistogramPython.itkHistogramD_GetIndex(self, *args)

    def GetClipBinsAtEnds(self):
        r"""GetClipBinsAtEnds(self) -> bool"""
        return _itkHistogramPython.itkHistogramD_GetClipBinsAtEnds(self)

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

        Parameters
        ----------
        _arg: bool

        """
        return _itkHistogramPython.itkHistogramD_SetClipBinsAtEnds(self, _arg)

    def ClipBinsAtEndsOn(self):
        r"""ClipBinsAtEndsOn(self)"""
        return _itkHistogramPython.itkHistogramD_ClipBinsAtEndsOn(self)

    def ClipBinsAtEndsOff(self):
        r"""ClipBinsAtEndsOff(self)"""
        return _itkHistogramPython.itkHistogramD_ClipBinsAtEndsOff(self)

    def IsIndexOutOfBounds(self, index):
        r"""
        IsIndexOutOfBounds(self, index) -> bool

        Parameters
        ----------
        index: itkArraySL const &

        """
        return _itkHistogramPython.itkHistogramD_IsIndexOutOfBounds(self, index)

    def GetInstanceIdentifier(self, index):
        r"""
        GetInstanceIdentifier(self, index) -> unsigned long

        Parameters
        ----------
        index: itkArraySL const &

        """
        return _itkHistogramPython.itkHistogramD_GetInstanceIdentifier(self, index)

    def GetSize(self, *args):
        r"""
        GetSize(self) -> itkArrayUL
        GetSize(self, dimension) -> unsigned long

        Parameters
        ----------
        dimension: unsigned int

        """
        return _itkHistogramPython.itkHistogramD_GetSize(self, *args)

    def GetBinMin(self, dimension, nbin):
        r"""
        GetBinMin(self, dimension, nbin) -> double const &

        Parameters
        ----------
        dimension: unsigned int
        nbin: unsigned long

        """
        return _itkHistogramPython.itkHistogramD_GetBinMin(self, dimension, nbin)

    def GetBinMax(self, dimension, nbin):
        r"""
        GetBinMax(self, dimension, nbin) -> double const &

        Parameters
        ----------
        dimension: unsigned int
        nbin: unsigned long

        """
        return _itkHistogramPython.itkHistogramD_GetBinMax(self, dimension, nbin)

    def SetBinMin(self, dimension, nbin, min):
        r"""
        SetBinMin(self, dimension, nbin, min)

        Parameters
        ----------
        dimension: unsigned int
        nbin: unsigned long
        min: double

        """
        return _itkHistogramPython.itkHistogramD_SetBinMin(self, dimension, nbin, min)

    def SetBinMax(self, dimension, nbin, max):
        r"""
        SetBinMax(self, dimension, nbin, max)

        Parameters
        ----------
        dimension: unsigned int
        nbin: unsigned long
        max: double

        """
        return _itkHistogramPython.itkHistogramD_SetBinMax(self, dimension, nbin, max)

    def GetBinMinFromValue(self, dimension, value):
        r"""
        GetBinMinFromValue(self, dimension, value) -> double const &

        Parameters
        ----------
        dimension: unsigned int
        value: float

        """
        return _itkHistogramPython.itkHistogramD_GetBinMinFromValue(self, dimension, value)

    def GetBinMaxFromValue(self, dimension, value):
        r"""
        GetBinMaxFromValue(self, dimension, value) -> double const &

        Parameters
        ----------
        dimension: unsigned int
        value: float

        """
        return _itkHistogramPython.itkHistogramD_GetBinMaxFromValue(self, dimension, value)

    def GetDimensionMins(self, dimension):
        r"""
        GetDimensionMins(self, dimension) -> vectorD

        Parameters
        ----------
        dimension: unsigned int

        """
        return _itkHistogramPython.itkHistogramD_GetDimensionMins(self, dimension)

    def GetDimensionMaxs(self, dimension):
        r"""
        GetDimensionMaxs(self, dimension) -> vectorD

        Parameters
        ----------
        dimension: unsigned int

        """
        return _itkHistogramPython.itkHistogramD_GetDimensionMaxs(self, dimension)

    def GetMins(self):
        r"""GetMins(self) -> vectorvectorD"""
        return _itkHistogramPython.itkHistogramD_GetMins(self)

    def GetMaxs(self):
        r"""GetMaxs(self) -> vectorvectorD"""
        return _itkHistogramPython.itkHistogramD_GetMaxs(self)

    def GetHistogramMinFromIndex(self, index):
        r"""
        GetHistogramMinFromIndex(self, index) -> itkArrayD

        Parameters
        ----------
        index: itkArraySL const &

        """
        return _itkHistogramPython.itkHistogramD_GetHistogramMinFromIndex(self, index)

    def GetHistogramMaxFromIndex(self, index):
        r"""
        GetHistogramMaxFromIndex(self, index) -> itkArrayD

        Parameters
        ----------
        index: itkArraySL const &

        """
        return _itkHistogramPython.itkHistogramD_GetHistogramMaxFromIndex(self, index)

    def SetFrequency(self, *args):
        r"""
        SetFrequency(self, value)

        Parameters
        ----------
        value: unsigned long

        SetFrequency(self, id, value) -> bool

        Parameters
        ----------
        id: unsigned long
        value: unsigned long

        """
        return _itkHistogramPython.itkHistogramD_SetFrequency(self, *args)

    def SetFrequencyOfIndex(self, index, value):
        r"""
        SetFrequencyOfIndex(self, index, value) -> bool

        Parameters
        ----------
        index: itkArraySL const &
        value: unsigned long

        """
        return _itkHistogramPython.itkHistogramD_SetFrequencyOfIndex(self, index, value)

    def SetFrequencyOfMeasurement(self, measurement, value):
        r"""
        SetFrequencyOfMeasurement(self, measurement, value) -> bool

        Parameters
        ----------
        measurement: itkArrayD const &
        value: unsigned long

        """
        return _itkHistogramPython.itkHistogramD_SetFrequencyOfMeasurement(self, measurement, value)

    def IncreaseFrequency(self, id, value):
        r"""
        IncreaseFrequency(self, id, value) -> bool

        Parameters
        ----------
        id: unsigned long
        value: unsigned long

        """
        return _itkHistogramPython.itkHistogramD_IncreaseFrequency(self, id, value)

    def IncreaseFrequencyOfIndex(self, index, value):
        r"""
        IncreaseFrequencyOfIndex(self, index, value) -> bool

        Parameters
        ----------
        index: itkArraySL const &
        value: unsigned long

        """
        return _itkHistogramPython.itkHistogramD_IncreaseFrequencyOfIndex(self, index, value)

    def IncreaseFrequencyOfMeasurement(self, measurement, value):
        r"""
        IncreaseFrequencyOfMeasurement(self, measurement, value) -> bool

        Parameters
        ----------
        measurement: itkArrayD const &
        value: unsigned long

        """
        return _itkHistogramPython.itkHistogramD_IncreaseFrequencyOfMeasurement(self, measurement, value)

    def GetMeasurementVector(self, *args):
        r"""
        GetMeasurementVector(self, id) -> itkArrayD

        Parameters
        ----------
        id: unsigned long

        GetMeasurementVector(self, index) -> itkArrayD

        Parameters
        ----------
        index: itkArraySL const &

        """
        return _itkHistogramPython.itkHistogramD_GetMeasurementVector(self, *args)

    def GetMeasurement(self, n, dimension):
        r"""
        GetMeasurement(self, n, dimension) -> double

        Parameters
        ----------
        n: unsigned long
        dimension: unsigned int

        """
        return _itkHistogramPython.itkHistogramD_GetMeasurement(self, n, dimension)

    def GetFrequency(self, *args):
        r"""
        GetFrequency(self, id) -> unsigned long

        Parameters
        ----------
        id: unsigned long

        GetFrequency(self, index) -> unsigned long

        Parameters
        ----------
        index: itkArraySL const &

        GetFrequency(self, n, dimension) -> unsigned long

        Parameters
        ----------
        n: unsigned long
        dimension: unsigned int

        """
        return _itkHistogramPython.itkHistogramD_GetFrequency(self, *args)

    def Quantile(self, dimension, p):
        r"""
        Quantile(self, dimension, p) -> double

        Parameters
        ----------
        dimension: unsigned int
        p: double

        """
        return _itkHistogramPython.itkHistogramD_Quantile(self, dimension, p)

    def Mean(self, dimension):
        r"""
        Mean(self, dimension) -> double

        Parameters
        ----------
        dimension: unsigned int

        """
        return _itkHistogramPython.itkHistogramD_Mean(self, dimension)
    __swig_destroy__ = _itkHistogramPython.delete_itkHistogramD

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

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

        """
        return _itkHistogramPython.itkHistogramD_cast(obj)

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

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

          itkHistogramD.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkHistogramD in _itkHistogramPython:
_itkHistogramPython.itkHistogramD_swigregister(itkHistogramD)

def itkHistogramF_New():
    return itkHistogramF.New()

class itkHistogramF(itk.itkSamplePython.itkSampleAF):
    r"""Proxy of C++ itkHistogramF 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__() -> itkHistogramF_Pointer"""
        return _itkHistogramPython.itkHistogramF___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkHistogramF_Pointer"""
        return _itkHistogramPython.itkHistogramF_Clone(self)

    def Initialize(self, *args):
        r"""
        Initialize(self, size)

        Parameters
        ----------
        size: itkArrayUL const &

        Initialize(self, size, lowerBound, upperBound)

        Parameters
        ----------
        size: itkArrayUL const &
        lowerBound: itkArrayF &
        upperBound: itkArrayF &

        """
        return _itkHistogramPython.itkHistogramF_Initialize(self, *args)

    def SetToZero(self):
        r"""SetToZero(self)"""
        return _itkHistogramPython.itkHistogramF_SetToZero(self)

    def GetIndex(self, *args):
        r"""
        GetIndex(self, measurement, index) -> bool

        Parameters
        ----------
        measurement: itkArrayF const &
        index: itkArraySL &

        GetIndex(self, id) -> itkArraySL

        Parameters
        ----------
        id: unsigned long

        """
        return _itkHistogramPython.itkHistogramF_GetIndex(self, *args)

    def GetClipBinsAtEnds(self):
        r"""GetClipBinsAtEnds(self) -> bool"""
        return _itkHistogramPython.itkHistogramF_GetClipBinsAtEnds(self)

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

        Parameters
        ----------
        _arg: bool

        """
        return _itkHistogramPython.itkHistogramF_SetClipBinsAtEnds(self, _arg)

    def ClipBinsAtEndsOn(self):
        r"""ClipBinsAtEndsOn(self)"""
        return _itkHistogramPython.itkHistogramF_ClipBinsAtEndsOn(self)

    def ClipBinsAtEndsOff(self):
        r"""ClipBinsAtEndsOff(self)"""
        return _itkHistogramPython.itkHistogramF_ClipBinsAtEndsOff(self)

    def IsIndexOutOfBounds(self, index):
        r"""
        IsIndexOutOfBounds(self, index) -> bool

        Parameters
        ----------
        index: itkArraySL const &

        """
        return _itkHistogramPython.itkHistogramF_IsIndexOutOfBounds(self, index)

    def GetInstanceIdentifier(self, index):
        r"""
        GetInstanceIdentifier(self, index) -> unsigned long

        Parameters
        ----------
        index: itkArraySL const &

        """
        return _itkHistogramPython.itkHistogramF_GetInstanceIdentifier(self, index)

    def GetSize(self, *args):
        r"""
        GetSize(self) -> itkArrayUL
        GetSize(self, dimension) -> unsigned long

        Parameters
        ----------
        dimension: unsigned int

        """
        return _itkHistogramPython.itkHistogramF_GetSize(self, *args)

    def GetBinMin(self, dimension, nbin):
        r"""
        GetBinMin(self, dimension, nbin) -> float const &

        Parameters
        ----------
        dimension: unsigned int
        nbin: unsigned long

        """
        return _itkHistogramPython.itkHistogramF_GetBinMin(self, dimension, nbin)

    def GetBinMax(self, dimension, nbin):
        r"""
        GetBinMax(self, dimension, nbin) -> float const &

        Parameters
        ----------
        dimension: unsigned int
        nbin: unsigned long

        """
        return _itkHistogramPython.itkHistogramF_GetBinMax(self, dimension, nbin)

    def SetBinMin(self, dimension, nbin, min):
        r"""
        SetBinMin(self, dimension, nbin, min)

        Parameters
        ----------
        dimension: unsigned int
        nbin: unsigned long
        min: float

        """
        return _itkHistogramPython.itkHistogramF_SetBinMin(self, dimension, nbin, min)

    def SetBinMax(self, dimension, nbin, max):
        r"""
        SetBinMax(self, dimension, nbin, max)

        Parameters
        ----------
        dimension: unsigned int
        nbin: unsigned long
        max: float

        """
        return _itkHistogramPython.itkHistogramF_SetBinMax(self, dimension, nbin, max)

    def GetBinMinFromValue(self, dimension, value):
        r"""
        GetBinMinFromValue(self, dimension, value) -> float const &

        Parameters
        ----------
        dimension: unsigned int
        value: float

        """
        return _itkHistogramPython.itkHistogramF_GetBinMinFromValue(self, dimension, value)

    def GetBinMaxFromValue(self, dimension, value):
        r"""
        GetBinMaxFromValue(self, dimension, value) -> float const &

        Parameters
        ----------
        dimension: unsigned int
        value: float

        """
        return _itkHistogramPython.itkHistogramF_GetBinMaxFromValue(self, dimension, value)

    def GetDimensionMins(self, dimension):
        r"""
        GetDimensionMins(self, dimension) -> vectorF

        Parameters
        ----------
        dimension: unsigned int

        """
        return _itkHistogramPython.itkHistogramF_GetDimensionMins(self, dimension)

    def GetDimensionMaxs(self, dimension):
        r"""
        GetDimensionMaxs(self, dimension) -> vectorF

        Parameters
        ----------
        dimension: unsigned int

        """
        return _itkHistogramPython.itkHistogramF_GetDimensionMaxs(self, dimension)

    def GetMins(self):
        r"""GetMins(self) -> vectorvectorF"""
        return _itkHistogramPython.itkHistogramF_GetMins(self)

    def GetMaxs(self):
        r"""GetMaxs(self) -> vectorvectorF"""
        return _itkHistogramPython.itkHistogramF_GetMaxs(self)

    def GetHistogramMinFromIndex(self, index):
        r"""
        GetHistogramMinFromIndex(self, index) -> itkArrayF

        Parameters
        ----------
        index: itkArraySL const &

        """
        return _itkHistogramPython.itkHistogramF_GetHistogramMinFromIndex(self, index)

    def GetHistogramMaxFromIndex(self, index):
        r"""
        GetHistogramMaxFromIndex(self, index) -> itkArrayF

        Parameters
        ----------
        index: itkArraySL const &

        """
        return _itkHistogramPython.itkHistogramF_GetHistogramMaxFromIndex(self, index)

    def SetFrequency(self, *args):
        r"""
        SetFrequency(self, value)

        Parameters
        ----------
        value: unsigned long

        SetFrequency(self, id, value) -> bool

        Parameters
        ----------
        id: unsigned long
        value: unsigned long

        """
        return _itkHistogramPython.itkHistogramF_SetFrequency(self, *args)

    def SetFrequencyOfIndex(self, index, value):
        r"""
        SetFrequencyOfIndex(self, index, value) -> bool

        Parameters
        ----------
        index: itkArraySL const &
        value: unsigned long

        """
        return _itkHistogramPython.itkHistogramF_SetFrequencyOfIndex(self, index, value)

    def SetFrequencyOfMeasurement(self, measurement, value):
        r"""
        SetFrequencyOfMeasurement(self, measurement, value) -> bool

        Parameters
        ----------
        measurement: itkArrayF const &
        value: unsigned long

        """
        return _itkHistogramPython.itkHistogramF_SetFrequencyOfMeasurement(self, measurement, value)

    def IncreaseFrequency(self, id, value):
        r"""
        IncreaseFrequency(self, id, value) -> bool

        Parameters
        ----------
        id: unsigned long
        value: unsigned long

        """
        return _itkHistogramPython.itkHistogramF_IncreaseFrequency(self, id, value)

    def IncreaseFrequencyOfIndex(self, index, value):
        r"""
        IncreaseFrequencyOfIndex(self, index, value) -> bool

        Parameters
        ----------
        index: itkArraySL const &
        value: unsigned long

        """
        return _itkHistogramPython.itkHistogramF_IncreaseFrequencyOfIndex(self, index, value)

    def IncreaseFrequencyOfMeasurement(self, measurement, value):
        r"""
        IncreaseFrequencyOfMeasurement(self, measurement, value) -> bool

        Parameters
        ----------
        measurement: itkArrayF const &
        value: unsigned long

        """
        return _itkHistogramPython.itkHistogramF_IncreaseFrequencyOfMeasurement(self, measurement, value)

    def GetMeasurementVector(self, *args):
        r"""
        GetMeasurementVector(self, id) -> itkArrayF

        Parameters
        ----------
        id: unsigned long

        GetMeasurementVector(self, index) -> itkArrayF

        Parameters
        ----------
        index: itkArraySL const &

        """
        return _itkHistogramPython.itkHistogramF_GetMeasurementVector(self, *args)

    def GetMeasurement(self, n, dimension):
        r"""
        GetMeasurement(self, n, dimension) -> float

        Parameters
        ----------
        n: unsigned long
        dimension: unsigned int

        """
        return _itkHistogramPython.itkHistogramF_GetMeasurement(self, n, dimension)

    def GetFrequency(self, *args):
        r"""
        GetFrequency(self, id) -> unsigned long

        Parameters
        ----------
        id: unsigned long

        GetFrequency(self, index) -> unsigned long

        Parameters
        ----------
        index: itkArraySL const &

        GetFrequency(self, n, dimension) -> unsigned long

        Parameters
        ----------
        n: unsigned long
        dimension: unsigned int

        """
        return _itkHistogramPython.itkHistogramF_GetFrequency(self, *args)

    def Quantile(self, dimension, p):
        r"""
        Quantile(self, dimension, p) -> double

        Parameters
        ----------
        dimension: unsigned int
        p: double

        """
        return _itkHistogramPython.itkHistogramF_Quantile(self, dimension, p)

    def Mean(self, dimension):
        r"""
        Mean(self, dimension) -> double

        Parameters
        ----------
        dimension: unsigned int

        """
        return _itkHistogramPython.itkHistogramF_Mean(self, dimension)
    __swig_destroy__ = _itkHistogramPython.delete_itkHistogramF

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

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

        """
        return _itkHistogramPython.itkHistogramF_cast(obj)

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

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

          itkHistogramF.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkHistogramF in _itkHistogramPython:
_itkHistogramPython.itkHistogramF_swigregister(itkHistogramF)

def itkSimpleDataObjectDecoratorHD_New():
    return itkSimpleDataObjectDecoratorHD.New()

class itkSimpleDataObjectDecoratorHD(itk.ITKCommonBasePython.itkDataObject):
    r"""Proxy of C++ itkSimpleDataObjectDecoratorHD 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__() -> itkSimpleDataObjectDecoratorHD_Pointer"""
        return _itkHistogramPython.itkSimpleDataObjectDecoratorHD___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkSimpleDataObjectDecoratorHD_Pointer"""
        return _itkHistogramPython.itkSimpleDataObjectDecoratorHD_Clone(self)

    def Set(self, val):
        r"""
        Set(self, val)

        Parameters
        ----------
        val: itkHistogramD *const &

        """
        return _itkHistogramPython.itkSimpleDataObjectDecoratorHD_Set(self, val)

    def Get(self, *args):
        r"""
        Get(self) -> itkHistogramD
        Get(self) -> itkHistogramD
        """
        return _itkHistogramPython.itkSimpleDataObjectDecoratorHD_Get(self, *args)
    __swig_destroy__ = _itkHistogramPython.delete_itkSimpleDataObjectDecoratorHD

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

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

        """
        return _itkHistogramPython.itkSimpleDataObjectDecoratorHD_cast(obj)

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

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

          itkSimpleDataObjectDecoratorHD.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkSimpleDataObjectDecoratorHD in _itkHistogramPython:
_itkHistogramPython.itkSimpleDataObjectDecoratorHD_swigregister(itkSimpleDataObjectDecoratorHD)

def itkSimpleDataObjectDecoratorHF_New():
    return itkSimpleDataObjectDecoratorHF.New()

class itkSimpleDataObjectDecoratorHF(itk.ITKCommonBasePython.itkDataObject):
    r"""Proxy of C++ itkSimpleDataObjectDecoratorHF 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__() -> itkSimpleDataObjectDecoratorHF_Pointer"""
        return _itkHistogramPython.itkSimpleDataObjectDecoratorHF___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkSimpleDataObjectDecoratorHF_Pointer"""
        return _itkHistogramPython.itkSimpleDataObjectDecoratorHF_Clone(self)

    def Set(self, val):
        r"""
        Set(self, val)

        Parameters
        ----------
        val: itkHistogramF *const &

        """
        return _itkHistogramPython.itkSimpleDataObjectDecoratorHF_Set(self, val)

    def Get(self, *args):
        r"""
        Get(self) -> itkHistogramF
        Get(self) -> itkHistogramF
        """
        return _itkHistogramPython.itkSimpleDataObjectDecoratorHF_Get(self, *args)
    __swig_destroy__ = _itkHistogramPython.delete_itkSimpleDataObjectDecoratorHF

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

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

        """
        return _itkHistogramPython.itkSimpleDataObjectDecoratorHF_cast(obj)

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

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

          itkSimpleDataObjectDecoratorHF.New(reader, threshold=10)

        is (most of the time) equivalent to:

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


# Register itkSimpleDataObjectDecoratorHF in _itkHistogramPython:
_itkHistogramPython.itkSimpleDataObjectDecoratorHF_swigregister(itkSimpleDataObjectDecoratorHF)

