# encoding: utf-8
# module dipy.tracking.stopping_criterion
# from C:\Users\xukai\Downloads\发票2\venv\Lib\site-packages\dipy\tracking\stopping_criterion.cp311-win_amd64.pyd
# by generator 1.147
# no doc

# imports
import builtins as __builtins__ # <module 'builtins' (built-in)>
import numpy as np # C:\Users\xukai\Downloads\发票2\venv\Lib\site-packages\numpy\__init__.py
import enum as __enum


# Variables with simple values

ENDPOINT = 2

INVALIDPOINT = 0

OUTSIDEIMAGE = -1

PYERROR = -2

TRACKPOINT = 1

# functions

def __pyx_unpickle_Enum(*args, **kwargs): # real signature unknown
    pass

def __pyx_unpickle_StoppingCriterion(*args, **kwargs): # real signature unknown
    pass

def __pyx_unpickle___Pyx_EnumMeta(*args, **kwargs): # real signature unknown
    pass

# classes

class StoppingCriterion(object):
    # no doc
    def check_point(self, *args, **kwargs): # real signature unknown
        pass

    def __init__(self, *args, **kwargs): # real signature unknown
        pass

    @staticmethod # known case of __new__
    def __new__(*args, **kwargs): # real signature unknown
        """ Create and return a new object.  See help(type) for accurate signature. """
        pass

    def __reduce__(self, *args, **kwargs): # real signature unknown
        pass

    def __setstate__(self, *args, **kwargs): # real signature unknown
        pass

    __pyx_vtable__ = None # (!) real value is '<capsule object NULL at 0x000001896DC9E700>'


class AnatomicalStoppingCriterion(StoppingCriterion):
    """
    Abstract class that takes as input included and excluded tissue maps.
        The 'include_map' defines when the streamline reached a 'valid' stopping
        region (e.g. gray matter partial volume estimation (PVE) map) and the
        'exclude_map' defines when the streamline reached an 'invalid' stopping
        region (e.g. corticospinal fluid PVE map). The background of the anatomical
        image should be added to the 'include_map' to keep streamlines exiting the
        brain (e.g. through the brain stem).
    
        cdef:
            double interp_out_double[1]
            double[:]  interp_out_view = interp_out_view
            double[:, :, :] include_map, exclude_map
    """
    @classmethod
    def from_pve(cls, *args, **kwargs): # real signature unknown
        """
        AnatomicalStoppingCriterion from partial volume fraction (PVE)
                maps.
        
                Parameters
                ----------
                wm_map : array
                    The partial volume fraction of white matter at each voxel.
                gm_map : array
                    The partial volume fraction of gray matter at each voxel.
                csf_map : array
                    The partial volume fraction of corticospinal fluid at each
                    voxel.
        """
        pass

    def get_exclude(self, *args, **kwargs): # real signature unknown
        pass

    def get_include(self, *args, **kwargs): # real signature unknown
        pass

    def __init__(self, *args, **kwargs): # real signature unknown
        pass

    @staticmethod # known case of __new__
    def __new__(*args, **kwargs): # real signature unknown
        """ Create and return a new object.  See help(type) for accurate signature. """
        pass

    def __reduce__(self, *args, **kwargs): # real signature unknown
        pass

    def __setstate__(self, *args, **kwargs): # real signature unknown
        pass

    __pyx_vtable__ = None # (!) real value is '<capsule object NULL at 0x000001896DC9E820>'


class ActStoppingCriterion(AnatomicalStoppingCriterion):
    """
    Anatomically-Constrained Tractography (ACT) stopping criterion from [1]_.
        This implements the use of partial volume fraction (PVE) maps to
        determine when the tracking stops. The proposed ([1]_) method that
        cuts streamlines going through subcortical gray matter regions is
        not implemented here. The backtracking technique for
        streamlines reaching INVALIDPOINT is not implemented either.
        cdef:
            double interp_out_double[1]
            double[:]  interp_out_view = interp_out_view
            double[:, :, :] include_map, exclude_map
    
        References
        ----------
        .. [1] Smith, R. E., Tournier, J.-D., Calamante, F., & Connelly, A.
        "Anatomically-constrained tractography: Improved diffusion MRI
        streamlines tractography through effective use of anatomical
        information." NeuroImage, 63(3), 1924-1938, 2012.
    """
    def __init__(self, *args, **kwargs): # real signature unknown
        pass

    @staticmethod # known case of __new__
    def __new__(*args, **kwargs): # real signature unknown
        """ Create and return a new object.  See help(type) for accurate signature. """
        pass

    def __reduce__(self, *args, **kwargs): # real signature unknown
        pass

    def __setstate__(self, *args, **kwargs): # real signature unknown
        pass

    __pyx_vtable__ = None # (!) real value is '<capsule object NULL at 0x000001896DC9E880>'


class BinaryStoppingCriterion(StoppingCriterion):
    """
    cdef:
            unsigned char[:, :, :] mask
    """
    def __init__(self, *args, **kwargs): # real signature unknown
        pass

    @staticmethod # known case of __new__
    def __new__(*args, **kwargs): # real signature unknown
        """ Create and return a new object.  See help(type) for accurate signature. """
        pass

    def __reduce__(self, *args, **kwargs): # real signature unknown
        pass

    def __setstate__(self, *args, **kwargs): # real signature unknown
        pass

    __pyx_vtable__ = None # (!) real value is '<capsule object NULL at 0x000001896DC9E760>'


class CmcStoppingCriterion(AnatomicalStoppingCriterion):
    """
    Continuous map criterion (CMC) stopping criterion from [1]_.
        This implements the use of partial volume fraction (PVE) maps to
        determine when the tracking stops.
    
        cdef:
            double interp_out_double[1]
            double[:]  interp_out_view = interp_out_view
            double[:, :, :] include_map, exclude_map
            double step_size
            double average_voxel_size
            double correction_factor
    
        References
        ----------
        .. [1] Girard, G., Whittingstall, K., Deriche, R., & Descoteaux, M.
        "Towards quantitative connectivity analysis: reducing tractography biases."
        NeuroImage, 98, 266-278, 2014.
    """
    def __init__(self, *args, **kwargs): # real signature unknown
        pass

    @staticmethod # known case of __new__
    def __new__(*args, **kwargs): # real signature unknown
        """ Create and return a new object.  See help(type) for accurate signature. """
        pass

    def __reduce__(self, *args, **kwargs): # real signature unknown
        pass

    def __setstate__(self, *args, **kwargs): # real signature unknown
        pass

    __pyx_vtable__ = None # (!) real value is '<capsule object NULL at 0x000001896DC9E8E0>'


class StreamlineStatus(__enum.IntEnum):
    # no doc
    def _generate_next_value_(name, start, count, last_values): # reliably restored by inspect
        """
        Generate the next value when not given.
        
                name: the name of the member
                start: the initial start value or None
                count: the number of existing members
                last_values: the list of values assigned
        """
        pass

    def _new_member_(self, *args, **kwargs): # real signature unknown
        """ Create and return a new object.  See help(type) for accurate signature. """
        pass

    def _value_repr_(self, *args, **kwargs): # real signature unknown
        """ Return repr(self). """
        pass

    def __format__(self, *args, **kwargs): # real signature unknown
        pass

    def __init__(self, *args, **kwds): # reliably restored by inspect
        # no doc
        pass

    @staticmethod # known case of __new__
    def __new__(cls, value): # reliably restored by inspect
        # no doc
        pass

    ENDPOINT = 2
    INVALIDPOINT = 0
    OUTSIDEIMAGE = -1
    PYERROR = -2
    TRACKPOINT = 1
    _member_map_ = {
        'ENDPOINT': 2,
        'INVALIDPOINT': 0,
        'OUTSIDEIMAGE': -1,
        'PYERROR': -2,
        'TRACKPOINT': 1,
    }
    _member_names_ = [
        'PYERROR',
        'OUTSIDEIMAGE',
        'INVALIDPOINT',
        'TRACKPOINT',
        'ENDPOINT',
    ]
    _member_type_ = int
    _unhashable_values_ = []
    _use_args_ = True
    _value2member_map_ = {
        -2: -2,
        -1: -1,
        0: 0,
        1: 1,
        2: 2,
    }


class ThresholdStoppingCriterion(StoppingCriterion):
    """
    # Declarations from stopping_criterion.pxd bellow
        cdef:
            double threshold, interp_out_double[1]
            double[:]  interp_out_view = interp_out_view
            double[:, :, :] metric_map
    """
    def __init__(self, *args, **kwargs): # real signature unknown
        pass

    @staticmethod # known case of __new__
    def __new__(*args, **kwargs): # real signature unknown
        """ Create and return a new object.  See help(type) for accurate signature. """
        pass

    def __reduce__(self, *args, **kwargs): # real signature unknown
        pass

    def __setstate__(self, *args, **kwargs): # real signature unknown
        pass

    __pyx_vtable__ = None # (!) real value is '<capsule object NULL at 0x000001896DC9E7C0>'


# variables with complex values

__loader__ = None # (!) real value is '<_frozen_importlib_external.ExtensionFileLoader object at 0x000001896D858A10>'

__spec__ = None # (!) real value is "ModuleSpec(name='dipy.tracking.stopping_criterion', loader=<_frozen_importlib_external.ExtensionFileLoader object at 0x000001896D858A10>, origin='C:\\\\Users\\\\xukai\\\\Downloads\\\\??2\\\\venv\\\\Lib\\\\site-packages\\\\dipy\\\\tracking\\\\stopping_criterion.cp311-win_amd64.pyd')"

__test__ = {}

