+
    Ai
                     8    ^ RI t^ RIHtHtHt ^ RIHt RR ltR# )    N)vec_vec_dotmat_vec_dotvec_vec_outer)	boxfilterc           	       a aaaaaaa S P                  \        P                  4      o ^S,          ^,           pWD,          pS P                  w  oop\	        S SRR7      V,          p\	        \        S S 4      SRR7      V,          pV\        Ww4      ,          p\        P                  P                  WV,          \        P                  ! V4      ,          ,           4      V,          o\        SV4      o^V,          \        VS4      ,           o\	        \        P                  ! S^S,          ,
          S^S,          ,
          34      SRR7      oVVVVV VVV3R lp	V'       dn   \	        RS,
          SRR7      p
^\	        SSRR7      ,          pV\        \	        SSRR7      S 4      ,          pV
\        S V4      ,          p
WP                  4       3# V	# )a  Calculates the Laplacian for large kernel matting :cite:`he2010fast`

Parameters
----------
image: numpy.ndarray
    Image of shape :math:`h\times w \times 3`
epsilons: float
    Regularization strength, defaults to :math:`10^{-7}`
radius: int
    Radius of local window size, defaults to :math:`10`, i.e. only adjacent
    pixels are considered. The size of the local window is given as
    :math:`(2 r + 1)^2`, where :math:`r` denotes the radius. A larger radius
    might lead to violated color line constraints, but also favors further
    propagation of information within the image.
return_diagonal: bool
    Whether to also return the diagonal of the laplacian, defaults to True

Returns
-------
L_matvec: function
    Function that applies the Laplacian matrix to a vector
diag_L: numpy.ndarray
    Diagonal entries of the matting Laplacian, only returns if
    `return_diagonal` is True
validmodefullc           
        < V P                  SS4      p \        V SR R7      p\        V RR\        P                  3,          S	,          SR R7      pSV ,          pVRR\        P                  3,          S,          \	        SV4      ,
          pV\        S	\        VSRR7      4      ,          pVS
,          \        VS4      ,
          pV\        VSRR7      ,          pVP                  4       # )r   r	   :NNNr   )reshaper   npnewaxisr   r   flatten)pp_sumspI_sumsp_LtempVVmchimagemVmradiusws   &    _/var/www/html/photoedit/myenv/lib/python3.14/site-packages/pymatting/laplacian/lkm_laplacian.pyL_matveclkm_laplacian.<locals>.L_matvec3   s    IIaO1f73AaBJJ./%7gN!eaBJJ&'",{1g/FF{5)D&v"FGG|k'266yvF33{{}    g      ?)astyper   float64shaper   r   linalginveyer   r   onesr   )r   epsilonr   return_diagonalwindow_sizewindow_areadepthmeanscovsr   diag_Lr   r   r   r   r   r   r   s   f&f&        @@@@@@r   lkm_laplacianr1      sj   4 LL$Ef*q.K+K++KAq% eV'2[@E ]5%0&wG+UDM%''D 			d{2RVVE]BBCkQA	Q	B
k/Kr2
2C"''1q6z>1q6z>:;V&QA   39f6:9Rf55Iaf=uEE+eT**)))Or!   )gHz>
   T)	numpyr   pymatting.util.utilr   r   r   pymatting.util.boxfilterr   r1    r!   r   <module>r7      s     G G .Fr!   