o
    e                     @   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)Zfloat32Zfloat64uint8Zuint16Z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:   OD:\Projects\ConvertPro\env\Lib\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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   r,   )Zn_histZn_ori)   r   7   r   r=      -   R   r=         r=   r=      A   n   )   4   r
   r
   rG         r>   rG   K   r=   [   rG   rE   rG      )         B   \   L   N   rP   rP   W   X   rA   b   8   `   rP   )   r   (   	         9   $   rZ   rX         rZ   *      rB   )rD   x   rD   rL      l   rD   C   rD      o   _   rD   re   E   )   )   r+      ,      rI      "   rn   q   I   @   rn   rA   r   rq   )rB   rX   rB   1   rd   rB   rB   rT   rB   3   rB   S   rB   rB   rB   H   )   .   /   rJ   r{      rE   rk   r{   rH   rz   rx   r{   r   ;      )   u   rB   f   r   r   Z   rF         r   2   r_   r   r   F   )r   r+   r   )r   r0   r1   r	   r/   r.   r   Zdescriptorsr2   shaper5   r3   r4   r6   )r9   Zexp_descriptorsZkeypoints_countr:   r:   r;   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   )r0   Zonesr   pytestZraisesRuntimeErrorr/   )r.   r9   r:   r:   r;   "test_no_descriptors_extracted_sift   s
   
"r   )numpyr0   r   Znumpy.testingr   r   Zskimager   Zskimage._shared.testingr   Zskimage.featurer   Zskimage.util.dtyper   Zcoinsr.   markZparametrizer<   r   r   r:   r:   r:   r;   <module>   s    H&