
    1-Ph                        d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dl
mZ d dl
mZ d	 Zej                            d
ej        ej        ej        ej        g          ej                            ddddgfdddgfddg dfddg dfdddgfg          d                         Zej                            d
ej        ej        ej        ej        g          ej                            dg d          d                         Zd Zej                            ddddddg dg          d             Zej                            ddddddgd d ggdd!gd d"ggd!d!gd"d"gggfdddddgd!d!ggdd gd!d"ggd d gd"d"gggfdd#d#ddgd d gd$d$ggdd!gd d"gd$d%ggdd&gd d'gd$d(ggd!d!gd"d"gd%d%ggd!d&gd"d'gd%d(ggd&d&gd'd'gd(d(gggfdd#d#ddgd!d!gd&d&ggdd gd!d"gd&d'ggdd$gd!d%gd&d(ggd d gd"d"gd'd'ggd d$gd"d%gd'd(ggd$d$gd%d%gd(d(gggfdddddgd d gd"d"gd!d!gggfg          d)             Zej                            d*d+d,g          d-             ZdS ).    )shuffleN)assert_allclose)assert_array_equal)integral_image)haar_like_featurehaar_like_feature_coord)draw_haar_like_featurec                  
   t          j        dt           j                  } t          |           }d}t	          j        t                    5  t          |dddd|           t          dd|           t          | dddd|           d d d            n# 1 swxY w Y   t          ddd          \  }}t	          j        t                    5  t          |dddd|d d         |	           d d d            d S # 1 swxY w Y   d S )
N   r   dtypeunknown_typer   r   feature_typetype-2-x   r   feature_coord)
nponesfloat32r   pytestraises
ValueErrorr   r	   r
   )imgimg_iir   
feat_coord	feat_types        _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/skimage/feature/tests/test_haar.pytest_haar_like_feature_errorr"      s   
'&

+
+
+CC  F!L	z	"	" K K&!Q1<HHHH1<@@@@sAq!Q\JJJJK K K K K K K K K K K K K K K
 4Aq*EEJ		z	"	" 
 
Aq!QYrr]*	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s$   =BBBC88C<?C<r   z1feature_type,shape_feature,expected_feature_valuer   )T   g        type-2-ytype-3-x)*   )g      g      g       g      type-3-ytype-4)$   c                     t          j        d|          }t          |          }t          |dddd|           }t	          t          j        t          j        |                    |           d S )Nr   r   r   r   r   )r   r   r   r   r   sortunique)r   shape_featureexpected_feature_valuer   r   r   haar_features          r!   test_haar_like_featurer1       sj     '&
&
&
&CC  F$VQ1alSSSLBGBIl33446LMMMMM    r   r   r$   r%   r(   r)   c                    t          j        d|           }t          |          }|j        }d|j        v r-t          j        |j                            dd                    }t          |dddd|          }|j        |k    sJ d S )	Nr   r   uintu r   r   r   )r   r   r   r   namereplacer   )r   r   r   r   expected_dtyper0   s         r!   !test_haar_like_feature_fused_typer;   3   s     '&
&
&
&CC  F\N$$$."5"="=c2"F"FGG$VQ1alSSSL//////r2   c                      t          j        dt           j                  } t          |           }g d}t	          |dddd|          }t	          |dddd          }t          ||           d S )Nr   r   r3   r   r   r   )r   r   int8r   r   r   )r   r   r   	haar_listhaar_alls        r!   test_haar_like_feature_listr@   C   su    
'&
(
(
(CC  FMMML!&!Q1<PPPI Aq!44Hy(+++++r2   )r$   r%   r)   c           	         t          j        dt           j                  }t          |          }t	          | t
                    rNt          |            t          d | D              \  }}t          j        |          }t          j        |          }nt          dd|           \  }}t          |dddd||          }t          |dddd|           }t          ||           d S )Nr   r   c                 0    g | ]}t          d d |          S )r   r   ).0feat_ts     r!   
<listcomp>z6test_haar_like_feature_precomputed.<locals>.<listcomp>_   s%    OOO%aF33OOOr2   r   r   r   )r   r   r=   r   
isinstancelistr   zipconcatenater	   r   r   )r   r   r   r   r    haar_feature_precomputedr0   s          r!   "test_haar_like_feature_precomputedrK   L   s     '&
(
(
(CC  F,%% 
L 	 #OO,OOO!

I ^J//
N9--		 71l K K
I01a*      %VQ1aFFL/>>>>>r2   z(feature_type,height,width,expected_coord   )r   r   )r      )rM   r   )rM   rM   r   )r   rL   )rM   rL   )rL   r   )rL   rM   )rL   rL   c                     t          |||           \  }}t          j        d |D                       }t          ||           t          j        || k              sJ d S )Nc                     g | ]}|S  rP   )rC   hfs     r!   rE   z0test_haar_like_feature_coord.<locals>.<listcomp>   s    333"2333r2   )r	   r   arrayr   all)r   heightwidthexpected_coordr   r    s         r!   test_haar_like_feature_coordrW   l   sj    t 4E6<PPJ	33
33344Jz>2226)|+,,,,,,,r2   zmax_n_features,nnz_values)N.   )rM      c           
         t          j        dt           j                  }t          ddd          \  }}t	          |dddd|| d          }t	          |dddd|| d           |j        dk    sJ t          j        |          |k    sJ d S )Nr   r   r   r)   r   )max_n_featuresrng)r   r   r   )r   zerosr   r	   r
   shapecount_nonzero)r[   
nnz_valuesr   coord_images         r!   test_draw_haar_like_featurerd      s    
(6
,
,
,C&q!X66HE1"Q1a~1  E 31aE.VWXXXX;)####E""j000000r2   )randomr   r   numpyr   numpy.testingr   r   skimage.transformr   skimage.featurer   r	   r
   r"   markparametrizeuint8r=   r   float64r1   r;   r@   rK   rW   rd   rP   r2   r!   <module>rn      s              ) ) ) ) ) ) , , , , , , , , , , , , - - - - - - 3 3 3 3 3 3 2 2 2 2 2 2
 
 
" 28RWbj"*"MNN7	USE"	USE"	U8889	U8889	53% 	 	N N	 	 ONN 28RWbj"*"MNNNNN 	0 	0  ON	0, , , ***
 
? ?
 
?* . &!FF#34&!FF#34&!FF#34			
 &!FF#34&!FF#34&!FF#34			
 &!FF#3ff5EF&!FF#3ff5EF&!FF#3ff5EF&!FF#3ff5EF&!FF#3ff5EF&!FF#3ff5EF		
 &!FF#3ff5EF&!FF#3ff5EF&!FF#3ff5EF&!FF#3ff5EF&!FF#3ff5EF&!FF#3ff5EF		
 v 0662BVVDTUV		
_58 8r- -s8 8r- 4z66JKK1 1 LK1 1 1r2   