a
    
d                     @   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uint8Z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scalesZsigmasZscalespace_sigmasdetectextract)r   Z_imgdetector_extractorZexp_keypoint_rowsZexp_keypoint_colsZexp_octavesZexp_position_rowsZexp_position_colsZexp_orientationsZ
exp_scalesZ
exp_sigmasZexp_scalespace_sigmasZdetector_extractor2 r=   h/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/skimage/feature/tests/test_sift.pytest_keypoints_sift   sl    




r?   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sJ || j
j	d ksJ || jj	d ksJ || jj	d ksJ || jj	d ksJ || jj	d ksJ d S )Nr   r/   )Zn_histZn_ori)   r   7   r   r@      -   R   r@         r@   r@      A   n   )   4   r   r   rJ         rA   rJ   K   r@   [   rJ   rH   rJ      )         B   \   L   N   rS   rS   W   X   rD   b   8   `   rS   )   r   (   	         9   $   r]   r[         r]   *      rE   )rG   x   rG   rO      l   rG   C   rG      o   _   rG   rh   E   )   )   r.      ,      rL      "   rq   q   I   @   rq   rD   r   rt   )rE   r[   rE   1   rg   rE   rE   rW   rE   3   rE   S   rE   rE   rE   H   )   .   /   rM   r~      rH   rn   r~   rK   r}   r{   r~   r   ;      )   u   rE   f   r   r   Z   rI         r   2   rb   r   r   F   )r   r.   r   )r   r3   r4   r   r2   r1   r   Zdescriptorsr5   shaper8   r6   r7   r9   )r<   Zexp_descriptorsZkeypoints_countr=   r=   r>   test_descriptor_siftY   s.    

r   c                  C   sH   t d} t }tt ||  W d    n1 s:0    Y  d S )N)   r   )r3   Zonesr   pytestZraisesRuntimeErrorr2   )r1   r<   r=   r=   r>   "test_no_descriptors_extracted_sift   s    
r   )numpyr3   r   Znumpy.testingr   r   Zskimager   Zskimage._shared.testingr   Zskimage.featurer   Zskimage.util.dtyper   Zcoinsr1   markZparametrizer?   r   r   r=   r=   r=   r>   <module>   s   H&