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	 d dl
mZ d dlmZ e Ze	 ejdg dd	d
 Zdd Zdd ZdS )    N)assert_almost_equalassert_equal)data)run_in_parallel)SIFT)_convertdtype)float32float64uint8uint16int64c              	   C   s  t t| }t }|| tg d}tg d}tg d}tg d}tg d}tg d}tg d}	tg d}
tg d	g d
g dg dg dg dg}t||jd ddf  t||jd ddf  t||jd d  t||j	d ddf dd t||j	d ddf dd t||j
d d dd t|	|jd d  t|
|jd d dd t||jdd t }|t |t t|jd ddf |jd ddf  t|jd ddf |jd ddf  d S )N)
   r            r         r       )
K  r   iE  J  i6  r      iC     iR  )
r   r   r   r   r   r   r   r   r   r   )
_~1@r   gB3@gI5@g&1J9@goʢA:@gе=@g#A>@gV@)>@g1/?@)
nt@r   g)St@g7}#t@g!Imes@g!bt@gNٗi@g!1t-t@gzIOҭb@gWu@)
=?r   gƔ?gbT?gCʪc?gз&Y^?gYj6|?gO?g/R ?g_``?)
   r         r   r   r   r   r   r   )
1K+?r   gJ-A?gEaa?g G?g|WS?grH0?gV?g7?g84?)g?güCa ?găQ?皙?üCa  @ăQ@)r    r!   r"   皙	@üCa @炽pQ@)r#   r$   r%   皙@üCa  @GQ$@)r&   r'   r(   皙)@üCa 0@eEQ4@)r)   r*   r+   皙9@üCa @@P0QD@)r,   r-   r.   gI@g8a P@gP0QT@
   r   r      )decimal)r   imgr   detect_and_extractnparrayr   	keypointsoctaves	positionsorientationsscalessigmasscalespace_sigmasdetectextract)r   _imgdetector_extractorexp_keypoint_rowsexp_keypoint_colsexp_octavesexp_position_rowsexp_position_colsexp_orientations
exp_scales
exp_sigmasexp_scalespace_sigmasdetector_extractor2 rK   Z/var/www/html/scripts/venv/lib/python3.10/site-packages/skimage/feature/tests/test_sift.pytest_keypoints_sift   sl   




rM   c                  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
tjd}| t t|| jd d  | jj	d }|| jj	d ksKJ || j
j	d ksUJ || jj	d ks_J || jj	d ksiJ || jj	d kssJ || jj	d ks}J d S )Nr   r0   )n_histn_ori)   r   7   r   rP      -   R   rP         rP   rP      A   n   )   4   r   r   rZ         rQ   rZ   K   rP   [   rZ   rX   rZ      )         B   \   L   N   rc   rc   W   X   rT   b   8   `   rc   )   r   (   	         9   $   rm   rk         rm   *      rU   )rW   x   rW   r_      l   rW   C   rW      o   _   rW   rx   E   )   )   r/      ,      r\      "   r   q   I   @   r   rT   r   r   )rU   rk   rU   1   rw   rU   rU   rg   rU   3   rU   S   rU   rU   rU   H   )   .   /   r]   r      rX   r~   r   r[   r   r   r   r   ;      )   u   rU   f   r   r   Z   rY         r   2   rr   r   r   F   )r   r/   r   )r   r4   r5   r   r3   r2   r   descriptorsr6   shaper9   r7   r8   r:   )r@   exp_descriptorskeypoints_countrK   rK   rL   test_descriptor_siftY   s.   

r   c                  C   sJ   t d} t }tt ||  W d    d S 1 sw   Y  d S )N)   r   )r4   onesr   pytestraisesRuntimeErrorr3   )r2   r@   rK   rK   rL   "test_no_descriptors_extracted_sift   s
   
"r   )numpyr4   r   numpy.testingr   r   skimager   skimage._shared.testingr   skimage.featurer   skimage.util.dtyper   coinsr2   markparametrizerM   r   r   rK   rK   rK   rL   <module>   s    H&