
    9i!                     8    S SK rS SKrS SKJr  SSKJr  S rS r	g)    N)sparse   )_ncut_cyc                     [         R                  " U SS9nUR                  SS9n[        R                  " US4UR
                  S9R                  5       nX14$ )a  Returns the diagonal and weight matrices of a graph.

Parameters
----------
graph : RAG
    A Region Adjacency Graph.

Returns
-------
D : csc_array
    The diagonal matrix of the graph. ``D[i, i]`` is the sum of weights of
    all edges incident on `i`. All other entries are `0`.
W : csc_array
    The weight matrix of the graph. ``W[i, j]`` is the weight of the edge
    joining `i` to `j`.
csc)formatr   )axis)shape)nxto_scipy_sparse_arraysumr   	dia_arrayr
   tocsc)graphWentriesDs       S/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/graph/_ncut.pyDW_matricesr      sO    $ 	  u5AeeemG'1QWW5;;=A4K    c                 :   [         R                  " U 5      n [        R                  " XR                  UR
                  UR                  UR                  S   S9nUR                  U    R                  5       nUR                  U )    R                  5       nX4-  X5-  -   $ )a0  Returns the N-cut cost of a bi-partition of a graph.

Parameters
----------
cut : ndarray
    The mask for the nodes in the graph. Nodes corresponding to a `True`
    value are in one set.
D : csc_array
    The diagonal matrix of the graph.
W : csc_array
    The weight matrix of the graph.

Returns
-------
cost : float
    The cost of performing the N-cut.

References
----------
.. [1] Normalized Cuts and Image Segmentation, Jianbo Shi and
       Jitendra Malik, IEEE Transactions on Pattern Analysis and Machine
       Intelligence, Page 889, Equation 2.
r   )num_cols)	nparrayr   cut_costdataindicesindptrr
   r   )cutr   r   r   assoc_aassoc_bs         r   	ncut_costr"       s{    0 ((3-C  ffaiiAGGTUJWH ffSkooGffcTl G8#566r   )
networkxr   numpyr   scipyr    r   r   r"    r   r   <module>r(      s       2 7r   