
    9i                         S SK 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JrJr  S SKJr  S rS	 rS
 rS rS rS rg)    N)assert_equal)data)	transform)rgb2gray)BRIEFmatch_descriptorscorner_peakscorner_harris)testingc                      [         R                  " / SQ/ SQ/5      n [         R                  " / SQ/ SQ/5      n[        R                  " [        5         [        X5        SSS5        g! , (       d  f       g= f)z@Sizes of descriptors of keypoints to be matched should be equal.)TTFT)FTFTTFFTF)FTTTFN)nparrayr   raises
ValueErrorr   )descs1descs2s     `/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/feature/tests/test_match.py6test_binary_descriptors_unequal_descriptor_sizes_errorr   
   sP    XX02LMNFXX	*,LMF 

	#&) 
$	#	#s   A((
A6c                      [         R                  " / SQ/ SQ/5      n [         R                  " / SQ/ SQ/5      n[        X5      n[        USS/SS//5        g )N)TTFTT)FTFTTr   )FFTTTr      )r   r   r   r   r   r   matchess      r   test_binary_descriptorsr      sU    XX	(*JKF XX	*,LMF  /GAq6Aq6*+    c                     [         R                  " 5       n [        U 5      n [        R                  " SSSS9n[        R
                  " XSS9n[        SS9n[        [        U 5      S	S
SS9nUR                  X5        UR                  n[        [        U5      S	S
SS9nUR                  X&5        UR                  n[        XWSS9n[        R                  " S5      n	[        R                  " / SQ5      n
[        USS2S
4   U	5        [        USS2S4   U
5        [        XWSSS9n[        USS2S
4   U	5        [        USS2S4   U
5        [        XWSSSS9n[        USS2S
4   U	5        [        USS2S4   U
5        g)zVerify matched keypoints and their corresponding masks results between
image and its rotated version with the expected keypoint pairs with
cross_check disabled.r   333333?r   r   scalerotationtranslationFclip   descriptor_size   r   皙?min_distancethreshold_absthreshold_relcross_check/   )/r      r         r(            	                           %                            #   r@   *      &   !   (   $   '   
   rO   +   r;   rI   )      r@   rG   rB   r5   N	minkowski)metricr/   r3   )rV   pr/   )r   	astronautr   r   SimilarityTransformwarpr   r	   r
   extractdescriptorsr   r   aranger   r   imgtformrotated_img	extractor
keypoints1descriptors1
keypoints2descriptors2r   exp_matches1exp_matches2s              r   1test_binary_descriptors_rotation_crosscheck_falseri      su    ..
C
3-C))DfUE..%8Kc*Ic!3J c&((Lk"!SVJ k.((LNG99R=L880	
2Lh A-A-  ;EG A-A-  ;!G A-A-r   c                  4   [         R                  " 5       n [        U 5      n [        R                  " SSSS9n[        R
                  " XSS9n[        SS9n[        [        U 5      S	S
SS9nUR                  X5        UR                  n[        [        U5      S	S
SS9nUR                  X&5        UR                  n[        XWSS9n[        R                  " / SQ5      n	[        R                  " / SQ5      n
[        USS2S
4   U	5        [        USS2S4   U
5        g)zVerify matched keypoints and their corresponding masks results between
image and its rotated version with the expected keypoint pairs with
cross_check enabled.r   r   r   r   Fr#   r%   r&   r(   r   r)   r*   Tr.   )$r   r   r1   r2   r3   r(   rT   r4   r5   r7   rQ   r8      r9   r6   r;   r<   r>   r?         r=   r:   rB   rF   rC   rH   rK   rD      rG   rM   "   rL   rS   rJ   )$r   r1   r   r2   r3   r(   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   rA   rB   rC   rD   rE   rF   rH   rI   r@   rJ   rK   rL   rM   rN   rO   rR   rS   rT   N)r   rX   r   r   rY   rZ   r   r	   r
   r[   r\   r   r   r   r   r^   s              r   0test_binary_descriptors_rotation_crosscheck_truerp      s
    ..
C
3-C))DfUE..%8Kc*Ic!3J c&((Lk"!SVJ k.((LMG88%	
'LP 88%	
'LP A-A-r   c                     [         R                  " S5      n [         R                  " S5      nSU SS S 24'   [        XSSSS9n[        U5      S	:X  d   e[        U US[         R                  " S
5      SS9n[        U5      S:X  d   e[        XSSSS9n[        USS//5        [        U US[         R                  " S
5      SS9n[        USS//5        g )N)rQ      )r;   rr   r   r   	euclideanr)   F)rV   max_distancer/   r7   g33333`@rQ   T)r   zerosr   lensqrtr   r   s      r   test_max_distancerx      s    XXi FXXi FF1a4L{%G w<1WWU^G w<2{$G Aq6(#WWU^G Aq6(#r   c                     S[         R                  " S5      S S 2S 4   R                  [         R                  5      -  n S[         R                  " S5      S S 2S 4   R                  [         R                  5      -  nSUS'   [	        XSSSS9n[        [        U5      S5        [	        XSS	SS9n[        [        U5      S5        [	        XSS
SS9n[        [        U5      S5        SU S'   [	        XSS
SS9n[        [        U5      S5        S[         R                  " S5      S S 2S 4   R                  [         R                  5      -  n[	        XSSSS9n[        [        U5      S5        [	        XSS
SS9n[        [        U5      S5        S[         R                  " S5      S S 2S 4   R                  [         R                  5      -  n [	        XSSSS9n[        [        U5      S5        [	        XSS
SS9n[        [        U5      S5        g )NrQ   r;   g      @r   rs   g      ?F)rV   	max_ratior/   g333333?g      ?r7   g      @r   )r   r]   astypefloat32r   r   rv   r   s      r   test_max_ratior}     s   "))B-4(//

;;F"))B-4(//

;;FF1I{cuG Wr"{cuG Wr"{cuG Wq!F1I{cuG Wq!"))A,q$w'..rzz::F{cuG Wr"{cuG Wr""))A,q$w'..rzz::F{cuG Wq!{cuG Wq!r   )numpyr   skimage._shared.testingr   skimager   r   skimage.colorr   skimage.featurer   r   r	   r
   skimage._sharedr   r   r   ri   rp   rx   r}    r   r   <module>r      s@     0   " Q Q #*,].@j.Z $F2"r   