
    |h                         d dl Zd dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZmZ d dlmZ d Zd	 Zd
 Zd Zd Zd Zy)    N)assert_equal)data)	transform)rgb2gray)BRIEFmatch_descriptorscorner_peakscorner_harris)testingc                      t        j                  g dg dg      } t        j                  g dg dg      }t        j                  t              5  t        | |       ddd       y# 1 sw Y   yxY w)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/test/engine/venv/lib/python3.12/site-packages/skimage/feature/tests/test_match.py6test_binary_descriptors_unequal_descriptor_sizes_errorr   
   s[    XX02LMNFXX	*,LMF 

	# *&&)* * *s   A&&A/c                      t        j                  g dg dg      } t        j                  g dg dg      }t        | |      }t        |ddgddgg       y )N)TTFTT)FTFTTr   )FFTTTr      )r   r   r   r   r   r   matchess      r   test_binary_descriptorsr      sW    XX	(*JKF XX	*,LMF  /GAq6Aq6*+    c                  (   t        j                         } t        |       } t        j                  ddd      }t        j
                  | |d      }t        d      }t        t        |       d	d
d      }|j                  | |       |j                  }t        t        |      d	d
d      }|j                  ||       |j                  }t        ||d      }t        j                  d      }	t        j                  g d      }
t        |ddd
f   |	       t        |dddf   |
       t        ||dd      }t        |ddd
f   |	       t        |dddf   |
       t        ||ddd      }t        |ddd
f   |	       t        |dddf   |
       y)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      s    ..
C
3-C))DfUE..e%8Kc*Ic!3J c:&((Lk"!SVJ k:.((LlNG99R=L880	
2Lh A-A-  l;EG A-A-  l;!G A-A-r   c                  V   t        j                         } t        |       } t        j                  ddd      }t        j
                  | |d      }t        d      }t        t        |       d	d
d      }|j                  | |       |j                  }t        t        |      d	d
d      }|j                  ||       |j                  }t        ||d      }t        j                  g d      }	t        j                  g d      }
t        |ddd
f   |	       t        |dddf   |
       y)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..e%8Kc*Ic!3J c:&((Lk"!SVJ k:.((LlMG88%	
'LP 88%	
'LP A-A-r   c                     t        j                  d      } t        j                  d      }d| dd d f<   t        | |ddd      }t        |      d	k(  sJ t        | |dt        j                  d
      d      }t        |      dk(  sJ t        | |ddd      }t        |ddgg       t        | |dt        j                  d
      d      }t        |ddgg       y )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                  H   dt        j                  d      d d d f   j                  t         j                        z  } dt        j                  d      d d d f   j                  t         j                        z  }d|d<   t	        | |ddd      }t        t        |      d       t	        | |dd	d      }t        t        |      d       t	        | |dd
d      }t        t        |      d       d| d<   t	        | |dd
d      }t        t        |      d       dt        j                  d      d d d f   j                  t         j                        z  }t	        | |ddd      }t        t        |      d       t	        | |dd
d      }t        t        |      d       dt        j                  d      d d d f   j                  t         j                        z  } t	        | |ddd      }t        t        |      d       t	        | |dd
d      }t        t        |      d       y )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   