U
    ?h                  	   @   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dd	d
ddgdd Zejddd	d
ddgdd Ze
edddd Zdd Zdd ZdS )    N)assert_almost_equalassert_equal)data)run_in_parallelxfailarch32)ORB)_convertdtypefloat32float64Zuint8Zuint16Zint64c                 C   s  t t| }tdddd}|| tddddd	d
ddddg
}tddddddddddg
}tddddddddddg
}tdddddd d!d"d#d$g
}td%d&d'd(d)d*d+d,d-d.g
}t| tjkr|jjtjkst	|j
jtjkst	|jjtjks@t	n<|jjtjkst	|j
jtjks,t	|jjtjks@t	t||jd d d/f  t||jd d df  t||j t||j
d0 t|t|jd1 |t t||jd d d/f  t||jd d df  d S )2N
      皙?)n_keypointsfast_nfast_thresholdg     a@      [@gRj@g     ``@gbX9j@g     P@g     i@g      f@g     0t@g     t@gp=
ףq@g     @r@gvq@g     @U@g     @p@g     q@ǧt@     p@   g
ףp=
?gS?g333333?gG'JgYk(M@g͊n4XgfvbgBWg^nFgkxIgZ.d\@gTO@gSgp/?gv?g/C?gU#K?g?gUk/?g_vj.?gjK>ރ?g ?gt(?r         )r	   imgr   detectnparrayr
   r   scalesAssertionError	responsesorientationsr   r   	keypointsrad2degdetect_and_extractr
   Z_imgdetector_extractorZexp_rowsZexp_colsZ
exp_scalesZexp_orientationsZexp_response r%   P/var/www/html/venv/lib/python3.8/site-packages/skimage/feature/tests/test_orb.py*test_keypoints_orb_desired_no_of_keypoints   sf    

      
        
 
r'   c                 C   s$  t t| }tdddddd}|| tdddd	d
g}tdddddg}tdddddg}tdddddg}tdddddg}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   	downscalen_scalesr   g     `i@g     a@g     @P@g      M@g     Pr@r   g     @i@g     @`@g     0r@g      ?gkb@glF=DsLgjSgIKMgfcg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)	conditionreasonc                  C   s  t ddd} tjddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
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sVt|| j	jd kslt|| jjd kst|| jjd kstd S )Nr   r   )r   r   r   r   )r
   d   x   r      )r   r   r   boolr   r   extractr    r   r   r   Zdescriptorsr"   shaper   r   )r$   Zexp_descriptorsZkeypoints_countr%   r%   r&   test_descriptor_orb[   sR    


r6   c               	   C   s4   t d} t }tt ||  W 5 Q R X d S )N)   r7   )r   Zonesr   pytestZraisesRuntimeErrorr"   r   r$   r%   r%   r&   !test_no_descriptors_extracted_orb   s    
r;   c                  C   s<   t  d dd df } tddd}||  ||  d S )N@   r)      )r*   r+   )r   brickr   r   r"   r:   r%   r%   r&   test_img_too_small_orb   s    
r?   )numpyr   r8   Znumpy.testingr   r   Zskimager   Zskimage._shared.testingr   r   r   Zskimage.featurer   Zskimage.util.dtyper	   Zcoinsr   markZparametrizer'   r-   r6   r;   r?   r%   r%   r%   r&   <module>   s0    ) 

)