
    a6d                     l   d dl Zd dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
mZ d dlmZ d dlmZ  ej                    Z e	            ej                            dg d          d	                         Zej                            dg d          d
             Z e
ed          d             Zd Zd ZdS )    N)assert_almost_equalassert_equal)data)test_parallelxfailarch32)ORB)_convertdtype)float32float64uint8uint16int64c                    t          t          |           }t          ddd          }|                    |           t	          j        g d          }t	          j        g d          }t	          j        g d          }t	          j        g d          }t	          j        g d	          }t	          j        |           t          j        k    rU|j        j        t          j        k    sJ |j	        j        t          j        k    sJ |j
        j        t          j        k    sJ nT|j        j        t          j        k    sJ |j	        j        t          j        k    sJ |j
        j        t          j        k    sJ t          ||j        d d d
f                    t          ||j        d d df                    t          ||j                   t          ||j	        d           t          |t	          j        |j
                  d           |                    t                     t          ||j        d d d
f                    t          ||j        d d df                    d S )N
      皙?)n_keypointsfast_nfast_threshold)
     a@      [@gRj@g     ``@gbX9j@g     P@g     i@g      f@r   r   )
g     0t@g     t@gp=
ףq@g     @r@gvq@g     @U@g     @p@g     q@ǧt@     p@)
   r   g
ףp=
?r   gS?r   r   r   g333333?r   )
gG'JgYk(M@g͊n4XgfvbgBWg^nFgkxIgZ.d\@gTO@gS)
gp/?gv?g/C?gU#K?g?gUk/?g_vj.?gjK>ރ?g ?gt(?r   r         )r
   imgr	   detectnparrayr   r   scales	responsesorientationsr   r   	keypointsrad2degdetect_and_extractr   _imgdetector_extractorexp_rowsexp_cols
exp_scalesexp_orientationsexp_responses           >lib/python3.11/site-packages/skimage/feature/tests/test_orb.py*test_keypoints_orb_desired_no_of_keypointsr1      s|   
 CDBtLLLd###x 1 1 1 2 2Hx 2 2 2 3 3H EEEFFJx !/ !/ !/ 0 0 8 5 5 5 6 6L 
x"*$$!(."*<<<<!+1RZ????!.4
BBBBB!(."*<<<<!+1RZ????!.4
BBBB"4">qqq!t"DEEE"4">qqq!t"DEEE
$6$=>>>&8&BAFFF(
#5#BCCQH H H ))#..."4">qqq!t"DEEE"4">qqq!t"DEEEEE    c                 .   t          t          |           }t          ddddd          }|                    |           t	          j        g d          }t	          j        g d          }t	          j        g d          }t	          j        g d	          }t	          j        g d
          }t          ||j        d d df                    t          ||j        d d df                    t          ||j                   t          ||j	                   t          |t	          j
        |j                  d           |                    t                     t          ||j        d d df                    t          ||j        d d df                    d S )N   r   gQ?   )r   r   r   	downscalen_scales)r   g     `i@g     a@g     @P@g      M@)g     Pr@r   g     @i@g     @`@g     0r@)      ?r8   r8   r8   r8   )gkb@glF=DsLgjSgIKMgfc)g7Ԕƿg"-D>?g܌:g㳆?gO?r   r      )r
   r   r	   r   r    r!   r   r%   r"   r#   r&   r$   r'   r(   s           r0   4test_keypoints_orb_less_than_desired_no_of_keypointsr:   ;   s    CDB,0AK K Kd###x66677Hx66677H...//Jx !8 !8 !8 9 9 8 3 3 3 4 4L "4">qqq!t"DEEE"4">qqq!t"DEEE
$6$=>>>&8&BCCC(
#5#BCCQH H H ))#..."4">qqq!t"DEEE"4">qqq!t"DEEEEEr2   zKnown test failure on 32-bit platforms. See links for details: https://github.com/scikit-image/scikit-image/issues/3091 https://github.com/scikit-image/scikit-image/issues/2529)	conditionreasonc                     t          dd          } t          j        g dg dg dg dg dg d	g d
g dg dg dg dg dg dg dg dg dg dg dg dg dgt                    }|                     t
                     |                     t
          | j        | j        | j	                   t          || j        ddddf                    |                     t
                     t          || j        ddddf                    | j        j        d         }|| j        j        d         k    sJ || j	        j        d         k    sJ || j        j        d         k    sJ || j        j        d         k    sJ d S )Nr   r   )r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )r   d   x   r      r   )r	   r    r!   boolr   r   extractr%   r"   r$   r   descriptorsr'   shaper#   )r*   exp_descriptorskeypoints_counts      r0   test_descriptor_orbrG   [   s4    Bt<<<h > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >' @& HL'M M MO* c"""s$6$@181>@ @ @ #/CB?A A A ))#...#/CB?A A A(28;O0<B1EEEEE0=CAFFFFF0:@CCCCC07=a@@@@@@@r2   c                      t          j        d          } t                      }t          j        t
                    5  |                    |            d d d            d S # 1 swxY w Y   d S )N)   rI   )r    onesr	   pytestraisesRuntimeErrorr'   r   r*   s     r0   !test_no_descriptors_extracted_orbrO      s    
'*

C	|	$	$ 3 3--c2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   AA#&A#c                      t          j                    d dd df         } t          dd          }|                    |            |                    |            d S )N@   r5      )r6   r7   )r   brickr	   r   r'   rN   s     r0   test_img_too_small_orbrT      s_    
*,,ss3B3w
Cq1555c"""))#.....r2   )numpyr    rK   numpy.testingr   r   skimager   skimage._shared.testingr   r   r   skimage.featurer	   skimage.util.dtyper
   coinsr   markparametrizer1   r:   rG   rO   rT    r2   r0   <module>r_      s        ; ; ; ; ; ; ; ;       @ @ @ @ @ @ @ @ @ @       ' ' ' ' ' ' djll ??? &F &F  &FR ??? F F F: JL L L
&A &AL L
&AR3 3 3/ / / / /r2   