a
    =b                     @   s   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 Ze	 ejdg dd	d
 Zejdg ddd Ze
edddd Zdd ZdS )    N)assert_almost_equalassert_equal)data)test_parallelxfailarch32)ORB)_convertdtype)float32float64Zuint8Zuint16Zint64c                 C   s  t t| }tdddd}|| tg d}tg d}tg d}tg d}tg d	}t| tjkr|jjtjksJ |j	jtjksJ |j
jtjksJ n6|jjtjksJ |j	jtjksJ |j
jtjksJ t||jd d d
f  t||jd d df  t||j t||j	d t|t|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
   Z_imgdetector_extractorZexp_rowsZexp_colsZ
exp_scalesZexp_orientationsZexp_response r%   =lib/python3.9/site-packages/skimage/feature/tests/test_orb.py*test_keypoints_orb_desired_no_of_keypoints   s2    


r'   c                 C   s  t t| }tdddddd}|| tg d}tg d}tg d}tg d	}tg d
}t||jd d df  t||jd d df  t||j t||j	 t|t
|jd |t t||jd d df  t||jd d df  d S )N   r   gQ?   )r   r   r   Z	downscaleZn_scales)r   g     `i@g     a@g     @P@g      M@)g     Pr@r   g     @i@g     @`@g     0r@)      ?r*   r*   r*   r*   )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#   r%   r%   r&   4test_keypoints_orb_less_than_desired_no_of_keypoints;   s(    


r,   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)Z	conditionreasonc                  C   s\  t d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d}| 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sBJ || jjd ksXJ 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   Zdescriptorsr"   shaper   )r$   Zexp_descriptorsZkeypoints_countr%   r%   r&   test_descriptor_orb[   sR    



r4   c                  C   sH   t d} t }tt ||  W d    n1 s:0    Y  d S )N)   r5   )r   Zonesr   pytestZraisesRuntimeErrorr"   )r   r$   r%   r%   r&   !test_no_descriptors_extracted_orb   s    
r8   )Znumpyr   r6   Znumpy.testingr   r   Zskimager   Zskimage._shared.testingr   r   r   Zskimage.featurer   Zskimage.util.dtyper	   Zcoinsr   ZmarkZparametrizer'   r,   r4   r8   r%   r%   r%   r&   <module>   s*   )

)