
    9iy                         S SK r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  \R                  " 5       r\	" 5       \R                   R#                  S/ SQ5      S	 5       5       rS
 rS rg)    N)assert_almost_equalassert_equal)data)run_in_parallel)SIFT)_convertdtype)float32float64uint8uint16int64c           	      
   [        [        U 5      n[        5       nUR                  U5        [        R
                  " / SQ5      n[        R
                  " / SQ5      n[        R
                  " / SQ5      n[        R
                  " / SQ5      n[        R
                  " / SQ5      n[        R
                  " / SQ5      n[        R
                  " / SQ5      n	[        R
                  " / SQ5      n
[        R
                  " / S	Q/ S
Q/ SQ/ SQ/ SQ/ SQ/5      n[        X2R                  S S2S4   5        [        XBR                  S S2S4   5        [        XRR                  S S 5        [        XbR                  S S2S4   SS9  [        XrR                  S S2S4   SS9  [        XR                  S S SS9  [        XR                  S S 5        [        XR                  S S SS9  [        XR                  SS9  [        5       nUR                  [        5        UR                  [        5        [        UR                  S S2S4   UR                  S S2S4   5        [        UR                  S S2S4   UR                  S S2S4   5        g )N)
   r            r         r       )
K  r   iE  J  i6  r      iC     iR  )
r   r   r   r   r   r   r   r   r   r   )
_~1@r   gB3@gI5@g&1J9@goʢA:@gе=@g#A>@gV@)>@g1/?@)
nt@r   g)St@g7}#t@g!Imes@g!bt@gNٗi@g!1t-t@gzIOҭb@gWu@)
=?r   gƔ?gbT?gCʪc?gз&Y^?gYj6|?gO?g/R ?g_``?)
   r         r    r   r   r   r   r   )
1K+?r!   gJ-A?gEaa?g G?g|WS?grH0?gV?g7?g84?)g?güCa ?găQ?皙?üCa  @ăQ@)r"   r#   r$   皙	@üCa @炽pQ@)r%   r&   r'   皙@üCa  @GQ$@)r(   r)   r*   皙)@üCa 0@eEQ4@)r+   r,   r-   皙9@üCa @@P0QD@)r.   r/   r0   gI@g8a P@gP0QT@
   r   r      )decimal)r   imgr   detect_and_extractnparrayr   	keypointsoctaves	positionsorientationsscalessigmasscalespace_sigmasdetectextract)r	   _imgdetector_extractorexp_keypoint_rowsexp_keypoint_colsexp_octavesexp_position_rowsexp_position_colsexp_orientations
exp_scales
exp_sigmasexp_scalespace_sigmasdetector_extractor2s                _/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/feature/tests/test_sift.pytest_keypoints_siftrN      sa    CD))$/!IJ!ST((9:K	
 	
 xx	
 89J	
J HHFFGJLL	
	 )+G+GQ+OP)+G+GQ+OP%?%?%DE77Q? 77Q? 99#2> 
$=$=cr$BC
$=$=cr$BANCCQ &s#$$$SbS!V,.A.K.KCRCQRF.S $$SbS!V,.A.K.KCRCQRF.S    c                     [        SSS9n [        R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/ S
Q/ SQ/ SQ/
[        R                  S9nU R	                  [
        5        [        XR                  S S 5        U R                  R                  S   nX R                  R                  S   :X  d   eX R                  R                  S   :X  d   eX R                  R                  S   :X  d   eX R                  R                  S   :X  d   eX R                  R                  S   :X  d   eX R                  R                  S   :X  d   eg )Nr   r2   )n_histn_ori)   r   7   r   rS      -   R   rS         rS   rS      A   n   )   4   r   r   r]         rT   r]   K   rS   [   r]   r[   r]      )         B   \   L   N   rf   rf   W   X   rW   b   8   `   rf   )   r   (   	         9   $   rp   rn         rp   *      rX   )rZ   x   rZ   rb      l   rZ   C   rZ      o   _   rZ   r{   E   )   )   r1      ,      r_      "   r   q   I   @   r   rW   r   r   )rX   rn   rX   1   rz   rX   rX   rj   rX   3   rX   S   rX   rX   rX   H   )   .   /   r`   r      r[   r   r   r^   r   r   r   r   ;      )   u   rX   f   r   r   Z   r\         r   2   ru   r   r   F   )r	   r1   r   )r   r6   r7   r   r5   r4   r   descriptorsr8   shaper;   r9   r:   r<   )rB   exp_descriptorskeypoints_counts      rM   test_descriptor_siftr      s5   Qa0hhUUSRQWTVQ	
: hh=OB ))#."@"@""EF(2288;O<<BB1EEEE==CCAFFFF88>>qAAAA::@@CCCC77==a@@@@77==a@@@@rO   c                      [         R                  " S5      n [        5       n[        R                  " [
        5         UR                  U 5        S S S 5        g ! , (       d  f       g = f)N)   r   )r6   onesr   pytestraisesRuntimeErrorr5   )r4   rB   s     rM   "test_no_descriptors_extracted_siftr      s>    
''*
C	|	$--c2 
%	$	$s   A
A$)numpyr6   r   numpy.testingr   r   skimager   skimage._shared.testingr   skimage.featurer   skimage.util.dtyper   coinsr4   markparametrizerN   r   r    rO   rM   <module>r      sf      ;  3   '
jjl "TUm V m`-A`3rO   