
    1-Ph{                     v   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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oe d          d             Zd Zd ZdS )    N)assert_almost_equalassert_equal)data)run_in_parallelxfailarch32is_wasm)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           ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/skimage/feature/tests/test_orb.py*test_keypoints_orb_desired_no_of_keypointsr2      sn    CDBtLLLd###xPPP H xPPP H AAABBJx	
 	
 	
  8	
 	
 	
 L 
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"*%7%DEEq   ))#..."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@)      ?r9   r9   r9   r9   )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           r1   4test_keypoints_orb_less_than_desired_no_of_keypointsr;   Q   s   CDr$!a   d###x999::Hx;;;<<H33344Jx@@@  8UUUVVL"4">qqq!t"DEEE"4">qqq!t"DEEE
$6$=>>>&8&BCCC"*%7%DEEq   ))#..."4">qqq!t"DEEE"4">qqq!t"DEEEEEr3   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      r1   test_descriptor_orbrH   r   s    Bt<<<h************************************************************)	
, /  O4 c"""$!'	   "4"@S"R%"PQQQ))#..."4"@S"R%"PQQQ(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@@@@@@@r3   c                      t          j        d          } t                      }t          j        t
                    5  |                    |            d d d            d S # 1 swxY w Y   d S )N)   rJ   )r!   onesr
   pytestraisesRuntimeErrorr(   r   r+   s     r1   !test_no_descriptors_extracted_orbrP      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@   r6      )r7   r8   )r   brickr
   r    r(   rO   s     r1   test_img_too_small_orbrU      s_    
*,,ssCRCx
 Cq1555c"""))#.....r3   )numpyr!   rL   numpy.testingr   r   skimager   skimage._shared.testingr   r   r   r	   skimage.featurer
   skimage.util.dtyper   coinsr   markparametrizer2   r;   rH   rP   rU    r3   r1   <module>r`      s        ; ; ; ; ; ; ; ;       K K K K K K K K K K K K       ' ' ' ' ' ' djll "T"T"TUU>F >F VU >FB "T"T"TUUF F VUF@ $W	C  ,A ,A ,A^3 3 3/ / / / /r3   