
    a6do                         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dS )    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           dS # 1 swxY w Y   dS )z@Sizes of descriptors of keypoints to be matched should be equal.)TTFT)FTFTTFFTF)FTTTFN)nparrayr   raises
ValueErrorr   )descs1descs2s     @lib/python3.11/site-packages/skimage/feature/tests/test_match.py6test_binary_descriptors_unequal_descriptor_sizes_errorr      s    X0001113 4 4FX8887779 : :F	
	#	# * *&&)))* * * * * * * * * * * * * * * * * *s   A,,A03A0c                      t          j        g dg dg          } t          j        g dg dg          }t          | |          }t          |ddgddgg           d S )N)TTFTT)FTFTTr   )FFTTTr      )r   r   r   r   r   r   matchess      r   test_binary_descriptorsr      s    X6667779 : :FX8887779 : :F//GAq6Aq6*+++++    c                     t          j                    } t          |           } t          j        ddd          }t          j        | |d          }t          d          }t          t          |           d	d
d          }|	                    | |           |j
        }t          t          |          d	d
d          }|	                    ||           |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         |
           dS )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UUUE.e%888Kc***ImC00q,-SB B BJc:&&&(LmK88q,-SB B BJk:...(LlNNNG9R==L8 / / / 0 0L A---A---  l'2G G GGA---A---  l'2aUL L LGA---A-----r   c                     t          j                    } t          |           } t          j        ddd          }t          j        | |d          }t          d          }t          t          |           d	d
d          }|	                    | |           |j
        }t          t          |          d	d
d          }|	                    ||           |j
        }t          ||d          }t          j        g d          }	t          j        g d          }
t          |ddd
f         |	           t          |dddf         |
           dS )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   L   s{    .

C
3--C)DfUUUE.e%888Kc***ImC00q,-SB B BJc:&&&(LmK88q,-SB B BJk:...(LlMMMG8 - - - . .L 8 0 0 0 1 1L 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           d S )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   o   s)   Xi  FXi  FF1aaa4L{-0eE E EGw<<1{-/WU^^,13 3 3G w<<2{-0,02 2 2G Aq6(###{-/WU^^,02 2 2G Aq6(#####r   c                     dt          j        d          d d d f                             t           j                  z  } dt          j        d          d d d f                             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                             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                             t           j                  z  } t	          | |ddd          }t          t          |          d           t	          | |dd
d          }t          t          |          d           d S )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{*-5B B BGWr"""{*-5B B BGWr"""{*-5B B BGWq!!!F1I{*-5B B BGWq!!!")A,,qqq$w'..rz:::F{*-5B B BGWr"""{*-5B B BGWr"""")A,,qqq$w'..rz:::F{*-5B B BGWq!!!{*-5B B B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 0 0 0 0 0             " " " " " ": : : : : : : : : : : : # # # # # #* * *, , ,+. +. +.\ .  .  .F$ $ $4*" *" *" *" *"r   