o
    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g dd	d
 Zejdg d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float64uint8uint16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rX|jjtjksEJ |j	jtjksNJ |j
jtjksWJ n|jjtjksaJ |j	jtjksjJ |j
jtjkssJ 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
   _imgdetector_extractorexp_rowsexp_cols
exp_scalesexp_orientationsexp_response r.   Y/var/www/html/scripts/venv/lib/python3.10/site-packages/skimage/feature/tests/test_orb.py*test_keypoints_orb_desired_no_of_keypoints   s2   


r0   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   	downscalen_scales)r   g     `i@g     a@g     @P@g      M@)g     Pr@r   g     @i@g     @`@g     0r@)      ?r5   r5   r5   r5   )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(   


r7   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   sT  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sJ || j	jd ksJ || jjd ksJ || jjd ksJ 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_countr.   r.   r/   test_descriptor_orb[   sR   



rC   c                  C   sJ   t d} t }tt ||  W d    d S 1 sw   Y  d S )N)   rD   )r   onesr   pytestraisesRuntimeErrorr%   r   r(   r.   r.   r/   !test_no_descriptors_extracted_orb   s
   
"rJ   c                  C   s<   t  d dd df } tddd}||  ||  d S )N@   r2      )r3   r4   )r   brickr   r   r%   rI   r.   r.   r/   test_img_too_small_orb   s   
rN   )numpyr   rF   numpy.testingr   r   skimager   skimage._shared.testingr   r   r   skimage.featurer   skimage.util.dtyper	   coinsr   markparametrizer0   r7   rC   rJ   rN   r.   r.   r.   r/   <module>   s.    )

)