
    9i              
          S SK rS SKrS SKJr  S SKJrJrJrJ	r	J
r
  S rS rS rS r\R                  R!                  \(       + SS	9\R                  R#                  S
/ SQ5      S 5       5       r\R                  R!                  \(       + SS	9\R                  R#                  S/ S/SS/\R&                  " S5      45      S 5       5       r\R                  R!                  \(       + SS	9S 5       rg)    N)has_mpl)FeatureDetectorDescriptorExtractor_prepare_grayscale_input_2D_mask_border_keypointsplot_matched_featuresc                      [         R                  " [        5         [        5       R	                  S 5        S S S 5        g ! , (       d  f       g = fN)pytestraisesNotImplementedErrorr   detect     _/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/feature/tests/test_util.pytest_feature_detectorr      s,    	*	+  & 
,	+	+s	   >
Ac                      [         R                  " [        5         [        5       R	                  S S 5        S S S 5        g ! , (       d  f       g = fr
   )r   r   r   r   extractr   r   r   test_descriptor_extractorr      s.    	*	+%%dD1 
,	+	+s	   ?
Ac                     [         R                  " [        5         [        [        R
                  " S5      5        S S S 5        [         R                  " [        5         [        [        R
                  " S5      5        S S S 5        [         R                  " [        5         [        [        R
                  " S5      5        S S S 5        [        [        R
                  " S5      5        [        [        R
                  " S5      5        [        [        R
                  " S5      5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)N)   r   r   )r      )r   r   r   )r   r   )r   r   r   )r   r   r   )r   r   
ValueErrorr   npzerosr   r   r   test_prepare_grayscale_input_2Dr      s    	z	"#BHHY$78 
#	z	"#BHHV$45 
#	z	"#BHHY$78 
# 01 34 34 
#	"	"	"	"	"s#    D% D6 E%
D36
E
Ec                     [         R                  " SS/SS/SS/SS/SS//5      n [         R                  R                  [	        SU S5      / SQ5        [         R                  R                  [	        SU S5      / SQ5        [         R                  R                  [	        S	U S5      / S
Q5        [         R                  R                  [	        SU S5      / SQ5        [         R                  R                  [	        SU S5      / SQ5        g )Nr   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   arraytestingassert_equalr   )	keypointss    r   test_mask_border_keypointsr'   $   s    1a&1a&1a&1a&1a&ABIJJxA6 JJxA6 JJvy!4o JJxA6 JJxA6r   zMatplotlib not installed)reasonshapes))r    r    )r       r!   )r    r!   r+   )r    r+   r+   )r*   r    )r,   r    )r-   r    c                    SSK Jn  SSK Jn  U" S5        UR                  5       u  p4[        R
                  R                  S5      nSUR                  S5      -  nSUR                  S5      -  nUR                  SSS9nUR                  SSS9n	[        R                  " X45      n
U u  p[        R                  " U5      n[        R                  " U5      n[        UUUUU
US	9  [        UUUUUU
S
S9  [        UUUUUU
SS9  [        UUUUUU
SS9  [        R
                  R                  S5      n[        [        U
5      5       Vs/ s H  oR                  / SQ5      PM     nn[        UUUUUU
US9  [        UUUUUU
[        R                  " SS[        U
5      S9S9  [        UUUUUU
SS9  UR                  5         g s  snf )Nr   pyplotuseAggl   
*A r!   )r!   r   size)
keypoints0
keypoints1matchesaxT)r9   r6   r7   r8   only_matchesr)r9   r6   r7   r8   keypoints_colorr9   r6   r7   r8   matches_colorl   	A )C0z#abc
aquamarine)r   r   r   )r   r   r   )numvertical)r9   r6   r7   r8   	alignment)
matplotlibr0   r2   subplotsr   randomdefault_rngintegerscolumn_stackr   r   rangelenchoicelinspaceclose)r)   pltr2   figr9   rngr6   r7   idxs0idxs1r8   shape0shape1img0img1_random_matches_colors                    r   test_plot_matched_featuresrZ   7   s    )JllnGC
))


-Ccjj))Jcjj))JLL"L%ELL"L%Eooun-GNF88FD88FD    ))


-C:?G:M:MQ

/0:M   * kk)YCLI  IIK?s   F>r>   r?   C1   c                    SSK Jn  SSK Jn  U" S5        UR                  5       u  p4S[        R
                  R                  SS5      -  nS[        R
                  R                  SS5      -  n[        R
                  R                  SSS9n[        R
                  R                  SSS9n[        R                  " Xx45      n	[        U 5      [        U	5      :w  d   e[        R                  " S5      n
[        R                  " U
5      nS	n[        R                  " [        US
9   [        U
UUUUU	U S9  S S S 5        g ! , (       d  f       g = f)Nr   r/   r1   r3   r!   r   r4   r    za`matches_color` needs to be a single color or a sequence of length equal to the number of matchesmatchr=   )rD   r0   r2   rE   r   rF   randrandintrI   rK   r   
zeros_liker   r   r   r   )r>   rO   r2   rX   r9   r6   r7   rR   rS   r8   rV   rW   regexs                r   &test_plot_matched_features_color_errorrd      s	    )JLLNEAbiinnR++JbiinnR++JIIbr*EIIbr*Eooun-G}W---88HD==D	A 
 
z	/!!'	
 
0	/	/s   !D::
Ec                     SSK Jn   SSK Jn  U" S5        U R                  5       u  p#S[        R
                  R                  SS5      -  nS[        R
                  R                  SS5      -  n[        R
                  R                  SSS9n[        R
                  R                  SSS9n[        R                  " Xg45      n[        R                  " S5      n	[        R                  " U	5      n
[        R                  " [        S	S
9   [        U	U
UUUU[        R                  " [!        U5      5      S9  S S S 5        g ! , (       d  f       g = f)Nr   r/   r1   r3   r!   r   r4   r    z.* not a valid value for colorr^   r=   )rD   r0   r2   rE   r   rF   r`   ra   rI   r   rb   r   r   r   r   arangerK   )rO   r2   rX   r9   r6   r7   rR   rS   r8   rV   rW   s              r   1test_plot_matched_features_matplotlib_color_errorrg      s    
 )JLLNEAbiinnR++JbiinnR++JIIbr*EIIbr*Eooun-G88HD==D	z)I	J!!))CL1	
 
K	J	Js   -D;;
E	)numpyr   r   "skimage._shared._dependency_checksr   skimage.feature.utilr   r   r   r   r   r   r   r   r'   markskipifparametrizerZ   rf   rd   rg   r   r   r   <module>rn      s     6 '
2
	5& K(BCV DVr K(BC2vd|RYYr]*ST
 U D
D K(BC
 D
r   