ó
    #
3jÓ  ã                   ó"   • S SK Jr  S SKrSS jrg)é    )Útrimap_splitNc                 óò   • UR                   SS u  pE[        U5      u  pgp‰X(-  n
X&-  n[        R                  R	                  U
5      nX-   nUR                  5       nUR                  5         U(       a  XÛU
4$ XÛ4$ )aš  This function constructs a linear system from a matting Laplacian by
constraining the foreground and background pixels with a diagonal matrix
`C` to values in the right-hand-side vector `b`. The constraints are
weighted by a factor :math:`\lambda`. The linear system is given as

.. math::

  A = L + \lambda C,

where :math:`C=\mathop{Diag}(c)` having :math:`c_i = 1` if pixel i is known
and :math:`c_i = 0` otherwise.
The right-hand-side :math:`b` is a vector with entries :math:`b_i = 1` is
pixel is is a foreground pixel and :math:`b_i = 0` otherwise.


Parameters
----------
L: scipy.sparse.spmatrix
    Laplacian matrix, e.g. calculated with :code:`lbdm_laplacian` function
trimap: numpy.ndarray
    Trimap with shape :math:`h\times w`
lambda_value: float
    Constraint penalty, defaults to 100
return_c: bool
    Whether to return the constraint matrix `C`, defaults to False

Returns
-------
A: scipy.sparse.spmatrix
    Matrix describing the system of linear equations
b: numpy.ndarray
    Vector describing the right-hand side of the system
C: numpy.ndarray
    Vector describing the diagonal entries of the matrix `C`, only returned
    if `return_c` is set to True
Né   )Úshaper   ÚscipyÚsparseÚdiagsÚtocsrÚsum_duplicates)ÚLÚtrimapÚlambda_valueÚreturn_cÚhÚwÚis_fgÚis_bgÚis_knownÚ
is_unknownÚcÚbÚCÚAs                 ÚW/home/wildlama/miniconda3/lib/python3.13/site-packages/pymatting/laplacian/laplacian.pyÚmake_linear_systemr      s{   € ðJ <‰<˜˜ÐD€Aä)5°fÓ)=Ñ&€E(àÑ€AØÑ€Aä‰×Ñ˜1Ó€Aà	‰€Aà	‰‹	€Aà×ÑÔæØQˆwˆàˆ4€Kó    )g      Y@F)Úpymatting.util.utilr   Úscipy.sparser   r   © r   r   Ú<module>r       s   ðÝ ,Û õ7r   