
    9i                        S SK rS SKJrJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  S SKJrJr  S SKJrJr  S S	KJr  \R*                  " S
\R,                  \R.                  \R0                  /5      \R*                  " SSS/5      S 5       5       r\R*                  " S/ SQ5      S 5       r\R*                  " S
\R.                  \R0                  /5      S 5       r\R*                  " SSS/5      S 5       rS r\R*                  " S
\R<                  \R.                  \R0                  /5      \R*                  " SSS/5      \R*                  " SSS/5      \R*                  " SSS/5      S 5       5       5       5       rg)    N)dataimg_as_float)testing)assert_allclose)_supported_float_type)rgb2gray)mean_squared_errornormalized_root_mse)binary_dilationdisk)inpaintdtypesplit_into_regionsFTc                    [         R                  " [         R                  " [         R                  " SSSU S95      S5      n[         R                  " U5      nSUSSS 24'   SUSSS 24'   SUSSS 24'   SU[         R
                  " U5      '   [        R                  " X#US	9nUR                  [        UR                  5      :X  d   e[         R                  " / S
Q/ SQ/ SQ/ SQ/ SQ/5      nU [         R                  :X  a  SOSn[        XTUS9  g )Nr         r   r   r            r                 ?      ?      ?g?r   r   r   g2?g]ߝ?r   r   g}?g	#m?g~4?r   r   r   r         ?gHz>gư>rtol)nptilesquarelinspace
zeros_likewherer   inpaint_biharmonicr   r   arrayfloat64r   )r   r   imgmaskoutrefr#   s          f/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/restoration/tests/test_inpaint.pytest_inpaint_biharmonic_2dr2      s     ''"))BKK1au=>
GC==DDABKDABKDABKC

$
$SCU
VC99-cii8888
((<<<<<	
C BJJ&4DDC4(    channel_axis)r   r   c                    [        [        R                  " 5       S S2S S24   5      n[        R                  " UR
                  S S [        S9nSUSS2S S24'   XS[        R                  4   ) -  n[        X5      n[        R                  " USU 5      n[        R                  " X2U S	9n[        R                  " XPS5      n[        X5      nUS
U-  :  d   eg )N@   r   r   r         .r5   )r4   g{Gz?)r   r   	astronautr$   zerosshapeboolnewaxisr	   moveaxisr   r*   )r4   r-   r.   
img_defect
mse_defectimg_restoredmse_restoreds          r1    test_inpaint_biharmonic_2d_colorrD   &   s    
t~~'SbS1
2C88CIIbqM.DD2ssOS"**_---J#C4JZ\:J--|L ;;|2>L%c8L$++++r3   c           	         [         R                  " [         R                  " [         R                  " SSS5      5      S5      n[         R                  " U5      nSUSSS 24'   SUSSS 24'   SUSSS 24'   SU[         R
                  " U5      '   UR                  U SS	9n[        R                  " X5      nUR                  UR                  :X  d   e[         R                  " / S
Q/ SQ/ SQ/ SQ/ SQ/5      n[        XCSS9  g )Nr   r   r   r   r   r   r   Fcopyr   r   r   r    gh㈵>r"   )r$   r%   r&   r'   r(   r)   astyper   r*   r   r+   r   )r   r-   r.   r/   r0   s        r1   'test_inpaint_biharmonic_2d_float_dtypesrI   9   s    
''"))BKK1a016
:C==DDABKDABKDABKC
**U*
'C

$
$S
/C99		!!!
((<<<<<	
C C4(r3   c                 j   [         R                  " [         R                  " [         R                  " SSS5      5      S5      n[         R                  " XR
                  45      n[         R                  " U5      nSUSSS 2S S 24'   SUSSS 2S S 24'   SUSSS 2S S 24'   SU[         R                  " U5      '   [        R                  " XU S9n[         R                  " [         R                  " / S	Q/ S
Q/ SQ/ SQ/ SQ/5      [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      45      n[        XC5        g )Nr   r   r   r   r   r   r   r   )r   r   r   r   gVm3?)r   r   r   g>q?g?k#C34?)r   r   gO4S?g6[*g?gjB?r    )r   r   r   r   ggp?)r   r   r   g/H<\?g"
'J?)r   r   g cy6o?g)?gA'G^?)r   r   r   r   r   )r!   r!   r!   r!   r!   )r$   r%   r&   r'   dstackTr(   r)   r   r*   r+   r   )r   r-   r.   r/   r0   s        r1   test_inpaint_biharmonic_3drM   P   s   
''"))BKK1a016
:C
))S%%L
!C==DDABNDABNDABNC

$
$SCU
VC
))HHHHHHH HHHHHHH	
C, Cr3   c                     [         R                  " / 5      [         R                  " / 5      p[        R                  " [        5         [
        R                  " X5        S S S 5        [         R                  " S5      [         R                  " S5      p[        R                  " [        5         [
        R                  " X5        S S S 5        [         R                  R                  [         R                  " S5      SS/SS//S9n [         R                  " S5      n[        R                  " [        5         [
        R                  " X5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)N)r   r   )r   r   r   )r.   )
r$   r;   r   raises
ValueErrorr   r*   mar+   	TypeError)r-   r.   s     r1   test_invalid_inputrS   s   s    bhhrl	
	#""3- 
$  "((6"2	
	#""3- 
$ %%++bhhv&q!fq!f-=+
>C88FD			"""3- 
#	" 
$	# 
$	#
 
#	"s$   E*E"1E3
E"
E03
ForderCFr5   c           	         [         R                  " 5       S S 2S S24   nU [        R                  :X  a  [        R                  O[        R                  nUR                  USS9n[        R                  " UR                  S S [        S9nSUSS2S	S24'   SUS
S2SS24'   SUSS2SS24'   SUSS2SS24'   SUSS2SS24'   SUSS2S S24'   SUSS2SS 24'   SUSS2SS24'   SUSS2SS24'   [        R                  R                  S 5      nS! HN  nS"S#U-  -   n	UR                  UR                  S S 5      U	:  n
US :  a  [        U
[        U[        S95      n
SXj'   MP     UR                  5       n[        UR                  S   5       H  nS U[        R                   " U5      '   M     Uc  [#        U5      n[#        U5      nUR                  U SS9nUR                  U SS9n[        R$                  " XS$9n[&        R(                  " UUUUS%9nUR*                  U:X  d   e[-        XK5      n[-        [/        U5      U5      nUS&U-  :  d   eg )'N   FrF   r5   r   r      2   r         Z      (   <         iiiLi[ii   i8         im  ip     r   )r   r   r   g      
@r   )rT   )r4   r   g?)r   r:   r$   float32r,   rH   r;   r<   r=   randomdefault_rngstandard_normalr   r   rG   ranger)   r   asarrayr   r*   r   r
   r   )r   rT   r4   r   
image_origfloat_dtyper.   rstateradiusthreshtmp_maskimage_defectlayerimage_resultnrmse_defectnrmse_results                   r1   test_inpaint_nrmsery      s   
 !!TcT'*J % 3"**K"";U";J 88J$$Sb)6DDB"DS"S&DBCDS#c'	DdBsF	DS#2# DS$%DS"R%DS"S& YY""1%Fv%))**:*:3B*?@6IA:&xfD1IJH  ??$L|))"-.'(RXXd^$ / j)
-""5u"5J&&u5&9L::l8L--!-	L ,,,&z@L&|J'?NL#,,,,r3   ) numpyr$   skimager   r   skimage._sharedr   skimage._shared.testingr   skimage._shared.utilsr   skimage.colorr   skimage.metricsr	   r
   skimage.morphologyr   r   skimage.restorationr   parametrizefloat16rh   r,   r2   rD   rI   rM   rS   uint8ry    r3   r1   <module>r      sk    & # 3 7 " C 4 ' 	Wrzz2::rzzBC)E4=9) : D). 	^Z0, 1,$ 	Wrzz2::67) 8), 	)E4=9 :D. 	WrxxRZZ@AWsCj)^dBZ0)E4=94- : 1 * B4-r3   