scikit-image
44 строки · 1.6 Кб
1""" This is the definition file for mcp.pyx.
2It contains the definitions of the mcp class, such that
3other cython modules can "cimport mcp" and subclass it.
4"""
5
6from . cimport heap
7cimport numpy as cnp
8
9ctypedef heap.BOOL_T BOOL_T
10ctypedef unsigned char DIM_T
11ctypedef cnp.float64_t FLOAT_T
12ctypedef cnp.intp_t INDEX_T
13ctypedef cnp.int8_t EDGE_T
14ctypedef cnp.int8_t OFFSET_T
15ctypedef cnp.int16_t OFFSETS_INDEX_T
16
17
18cdef class MCP:
19cdef heap.FastUpdateBinaryHeap costs_heap
20cdef object costs_shape
21cdef object _starts
22cdef object _ends
23cdef DIM_T dim
24cdef BOOL_T dirty
25cdef BOOL_T use_start_cost
26# if use_start_cost is true, the cost of the starting element is added to
27# the cost of the path. Set to true by default in the base class...
28
29# Arrays used during front propagation
30cdef FLOAT_T [:] flat_costs
31cdef FLOAT_T [:] flat_cumulative_costs
32cdef OFFSETS_INDEX_T [:] traceback_offsets
33cdef EDGE_T [:,:] flat_pos_edge_map
34cdef EDGE_T [:,:] flat_neg_edge_map
35# offsets is part of public API. Used to interpret traceback result of find_costs()
36cdef public OFFSET_T [:,:] offsets
37cdef INDEX_T [:] flat_offsets
38cdef FLOAT_T [:] offset_lengths
39
40# Methods
41cpdef int goal_reached(self, INDEX_T index, FLOAT_T cumcost)
42cdef FLOAT_T _travel_cost(self, FLOAT_T old_cost, FLOAT_T new_cost, FLOAT_T offset_length)
43cdef void _examine_neighbor(self, INDEX_T index, INDEX_T new_index, FLOAT_T offset_length) noexcept
44cdef void _update_node(self, INDEX_T index, INDEX_T new_index, FLOAT_T offset_length) noexcept
45