
    9i                     ,    S r SSKrSSKrSSKrS rS rg)a)  Analytical transformations from raw image moments to central moments.

The expressions for the 2D central moments of order <=2 are often given in
textbooks. Expressions for higher orders and dimensions were generated in SymPy
using ``tools/precompute/moments_sympy.py`` in the GitHub repository.

    Nc                    U R                   nU R                  S   S-
  nU R                  nU R                  [        R
                  SS9n [        R                  " U 5      nUS:  d  US;  a  [        S5      eU nUS:X  Ga   US	   US
   -  nUS   US
   -  nUS
   US
'   US:  a0  US   XeS   -  -
  US'   US   XeS	   -  -
  US'   US   XuS   -  -
  US'   US:  a  US   SU-  US   -  -
  XuS   -  -
  US-  US   -  -   Xv-  US	   -  -   US'   US   SU-  US   -  -
  XeS   -  -
  SU-  U-  US   -  -   US'   US   SU-  US   -  -
  SUS-  -  US	   -  -   US'   US   SU-  US   -  -
  SUS-  -  US   -  -   US'   GOFUS   US   -  nUS   US   -  nUS   US   -  nUS   US'   US:  al  U* US   -  US   -   US'   U* US   -  US   -   US'   U* US   -  US   -   US'   U* US   -  US   -   US'   U* US   -  US   -   US'   U* US   -  US   -   US'   US:  Ga  SUS-  -  US   -  SU-  US   -  -
  US   -   US'   U* US   -  SU-  XuS   -  US   -
  -  -   US   -   US'   US-  US   -  SU-  US   -  -
  XUS   -  US   -
  -  -   US    -   US '   SUS-  -  US   -  SU-  US   -  -
  US!   -   US!'   U* US   -  SU-  XeS   -  US   -
  -  -   US"   -   US"'   U* US   -  XvUS   -  US   -
  -  -   XUS   -  US   -
  -  -   US#   -   US#'   U* US   -  SU-  U* US   -  US   -   -  -
  US$   -   US$'   US-  US   -  SU-  US   -  -
  XUS   -  US   -
  -  -   US%   -   US%'   US-  US   -  SU-  US   -  -
  XvUS   -  US   -
  -  -   US&   -   US&'   SUS-  -  US   -  SU-  US   -  -
  US'   -   US''   UR                  USS9$ )(a#  Analytical formulae for 2D and 3D central moments of order < 4.

`moments_raw_to_central` will automatically call this function when
ndim < 4 and order < 4.

Parameters
----------
moments_raw : ndarray
    The raw moments.

Returns
-------
moments_central : ndarray
    The central moments.
r      F)copy         z:This function only supports 2D or 3D moments of order < 4.r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r	   r   r	   )r   r	   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r	   )r   r   r   )r   r   r   )r   r	   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r	   r   r   )ndimshapedtypeastypenpfloat64
zeros_like
ValueError)	moments_rawr
   orderfloat_dtypemoments_centralmcxcyczs	            c/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/measure/_moments_analytical.py_moments_raw_to_central_fastr      s%     Da 1$E##K$$RZZe$<KmmK0OzT'UVVAqytWqwtWqw !$19$%dGbT7l$:OD!$%dGbT7l$:OD!$%dGbT7l$:OD!19 $b&1T7"#w, a%!D'/" 'AdG#	$ D! $!b&1T7**RD'\9AFRK!D'<QQ D! %&dGa"fqw.>$>RUQtWAT$TOD!$%dGa"fqw.>$>RUQtWAT$TOD! wZ!G*$wZ!G*$wZ!G*$#$W: 19(*sQwZ'7!G*'DOG$(*sQwZ'7!G*'DOG$(*sQwZ'7!G*'DOG$(*sQwZ'7!G*'DOG$(*sQwZ'7!G*'DOG$(*sQwZ'7!G*'DOG$19 BE	AgJ&R!G*)<<qzI G$ aj 1r6RG*_qz-I#JJQwZW G$ A'
"b&1W:%&QwZ!G*456 G* G$ BE	AgJ&R!G*)<<qzI G$ aj 1r6RG*_qz-I#JJQwZW G$ aj QwZ!G*456QwZ!G*456 G* G$ aj 1r6bS1W:-='
-J#KKaPWjX G$ A'
"b&1W:%&QwZ!G*456 G* G$ A'
"b&1W:%&QwZ!G*456 G* G$ BE	AgJ&R!G*)<<qzI G$ !!+E!::    c                    U R                   nU R                  S   S-
  nUS;   a  US:  a  [        U 5      $ [        R                  " U 5      nU n[        U[        [        R                  " U[        S95         USU-     -  5      nUS:X  a  [        US-   5       H  n[        US-   5       H  nXg-   U:  a  M  [        US-   5       Hu  n[        R                  " Xh5      n	XS   * Xh-
  -  -  n	[        US-   5       H=  n
[        R                  " Xz5      nXS   * Xz-
  -  -  nX6U4==   X-  XHU
4   -  -  ss'   M?     Mw     M     M     U$ [        R                  " [        US-   5      4U-  6  H  n[        U5      U:  a  M  [        R                  " U Vs/ s H  n[        US-   5      PM     sn6  HP  nXN   n[        XU5       H-  u  nnnU[        R                  " UU5      -  nUU* UU-
  -  -  nM/     X<==   U-  ss'   MR     M     U$ s  snf )Nr   r   r   r   )r   )r   r   )r
   r   r   r   r   tupleeyeintrangemathcomb	itertoolsproductsumzip)r   r
   r   r   r   centerspqiterm1jterm2ordersoidxsvali_ordercidxs                      r   moments_raw_to_centralr6      s   Da 1$Ev~%!)+K88mmK0OAAeBFF4s345$+FGGqy uqy!A519%55=q1uA IIaOEqzkqu55E"1q5\ $		!1:+15!99'1-a41HH- * & & "  ##uUQY'7&9D&@Bv;%%f'Efa!ef'EFD'C#&v#=Ctyy#..#.. $> #s*# G C  (Fs   H	
)__doc__r$   r"   numpyr   r   r6    r   r   <module>r:      s!      m;`,r   