
    1-Ph                         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     `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/skimage/feature/tests/test_match.py6test_binary_descriptors_unequal_descriptor_sizes_errorr   
   s    X0002L2L2LMNNFX	*	*	*,L,L,LM 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	(	(	(*J*J*JK F X	*	*	*,L,L,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
        }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c!3  J c:&&&(Lk""!SV  J k:...(LlNNNG9R==L80	
 0	
 0	
2 2Lh A---A---  l;E  G A---A---  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      s|    .

C
3--C)DfUUUE.e%888Kc***Ic!3  J c:&&&(Lk""!SV  J k:...(LlMMMG8%	
 %	
 %	
' 'LP 8%	
 %	
 %	
' '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           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      s-   Xi  FXi  FF1aaa4L{%  G w<<1WU^^  G w<<2{$  G Aq6(###WU^^  G 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{cu  G Wr"""{cu  G Wr"""{cu  G Wq!!!F1I{cu  G Wq!!!")A,,qqq$w'..rz:::F{cu  G Wr"""{cu  G Wr"""")A,,qqq$w'..rz:::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 0 0 0 0 0             " " " " " " Q Q Q Q Q Q Q Q Q Q Q Q # # # # # #* * *, , ,]. ]. ].@j. j. j.Z $  $  $F2" 2" 2" 2" 2"r   