
    1-Ph              
          d dl Zd dlZd dlmZ d dlmZmZmZm	Z	m
Z
 d Zd Zd Zd Zej                            e d	          ej                            d
g d          d                         Zej                            e d	          ej                            dg dgddg ej        d          f          d                         Zej                            e d	          d             ZdS )    N)has_mpl)FeatureDetectorDescriptorExtractor_prepare_grayscale_input_2D_mask_border_keypointsplot_matched_featuresc                      t          j        t                    5  t                                          d            d d d            d S # 1 swxY w Y   d S N)pytestraisesNotImplementedErrorr   detect     _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/skimage/feature/tests/test_util.pytest_feature_detectorr      s    	*	+	+ ' '  &&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   "A		AAc                      t          j        t                    5  t                                          d d            d d d            d S # 1 swxY w Y   d S r
   )r   r   r   r   extractr   r   r   test_descriptor_extractorr      s    	*	+	+ 2 2%%dD1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s   #A

AAc                     t          j        t                    5  t          t	          j        d                     d d d            n# 1 swxY w Y   t          j        t                    5  t          t	          j        d                     d d d            n# 1 swxY w Y   t          j        t                    5  t          t	          j        d                     d d d            n# 1 swxY w Y   t          t	          j        d                     t          t	          j        d                     t          t	          j        d                     d S )N)   r   r   )r      )r   r   r   )r   r   )r   r   r   )r   r   r   )r   r   
ValueErrorr   npzerosr   r   r   test_prepare_grayscale_input_2Dr      s   	z	"	" 9 9#BHY$7$78889 9 9 9 9 9 9 9 9 9 9 9 9 9 9	z	"	" 6 6#BHV$4$45556 6 6 6 6 6 6 6 6 6 6 6 6 6 6	z	"	" 9 9#BHY$7$78889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 0 0111 3 3444 3 344444s5   "AAA,"BB!B>"C,,C03C0c                  6   t          j        ddgddgddgddgddgg          } t           j                            t	          d| d          g d           t           j                            t	          d| d          g d           t           j                            t	          d	| d          g d
           t           j                            t	          d| d          g d           t           j                            t	          d| d          g d           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   arraytestingassert_equalr   )	keypointss    r   test_mask_border_keypointsr'   $   s-   1a&1a&1a&1a&1a&ABBIJxA66   JxA66   Jvy!44ooo   JxA66   JxA66    r   zMatplotlib not installed)reasonshapes))r    r    )r       r!   )r    r!   r+   )r    r+   r+   )r*   r    )r,   r    )r-   r    c                    ddl m} ddl m}  |d           |                                \  }}t          j                            d          d                    d          z  }d                    d          z  }                    dd          }                    dd          }t	          j        ||f          }	| \  }
}t	          j	        |
          }t	          j	        |          }t          |||||	|	           t          ||||||	d
           t          ||||||	d           t          ||||||	d           t          j                            d          fdt          t          |	                    D             }t          ||||||	|           t          ||||||	t	          j        ddt          |	                               t          ||||||	d           |                                 d S )Nr   pyplotuseAggl   
*A r!   )r!   r   size)
keypoints0
keypoints1matchesaxT)r9   r6   r7   r8   only_matchesr)r9   r6   r7   r8   keypoints_colorr9   r6   r7   r8   matches_colorl   	A c                 >    g | ]}                     g d           S ))C0z#abc
aquamarine)choice).0_rngs     r   
<listcomp>z.test_plot_matched_features.<locals>.<listcomp>{   s9       56

///00  r   )r   r   r   )r   r   r   )numvertical)r9   r6   r7   r8   	alignment)
matplotlibr0   r2   subplotsr   randomdefault_rngintegerscolumn_stackr   r   rangelenlinspaceclose)r)   pltr2   figr9   r6   r7   idxs0idxs1r8   shape0shape1img0img1random_matches_colorrE   s                  @r   test_plot_matched_featuresr]   7   s    )(((((CJJJllnnGC
)


-
-Ccjj)))Jcjj)))JLL"L%%ELL"L%%Eouen--GNFF8FD8FD                )


-
-C   :?G:M:M   *    k)YCLLIII        IIKKKKKr   r>   r@   C1   c           
         ddl m} ddl m}  |d           |                                \  }}dt          j                            dd          z  }dt          j                            dd          z  }t          j                            dd          }t          j                            dd          }t	          j        ||f          }	t          |           t          |	          k    sJ t	          j
        d          }
t	          j        |
          }d	}t          j        t          |
          5  t          |
|||||	|            d d d            d S # 1 swxY w Y   d S )Nr   r/   r1   r3   r!   r   r4   r    za`matches_color` needs to be a single color or a sequence of length equal to the number of matchesmatchr=   )rJ   r0   r2   rK   r   rL   randrandintrO   rQ   r   
zeros_liker   r   r   r   )r>   rT   r2   rD   r9   r6   r7   rV   rW   r8   rZ   r[   regexs                r   &test_plot_matched_features_color_errorrg      s    )(((((CJJJLLNNEArbinnR+++JbinnR+++JIbr**EIbr**Eouen--G}W----8HD=D	A 
 
z	/	/	/ 	
 	
!!'	
 	
 	
 	
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
s   4EEEc                     ddl m}  ddl m}  |d           |                                 \  }}dt          j                            dd          z  }dt          j                            dd          z  }t          j                            dd          }t          j                            dd          }t	          j        ||f          }t	          j	        d          }	t	          j
        |	          }
t          j        t          d	
          5  t          |	|
||||t	          j        t!          |                               d d d            d S # 1 swxY w Y   d S )Nr   r/   r1   r3   r!   r   r4   r    z.* not a valid value for colorra   r=   )rJ   r0   r2   rK   r   rL   rc   rd   rO   r   re   r   r   r   r   arangerQ   )rT   r2   rD   r9   r6   r7   rV   rW   r8   rZ   r[   s              r   1test_plot_matched_features_matplotlib_color_errorrj      s   
 )(((((CJJJLLNNEArbinnR+++JbinnR+++JIbr**EIbr**Eouen--G8HD=D	z)I	J	J	J 	
 	
!!)CLL11	
 	
 	
 	
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
s   6EEE)numpyr   r   "skimage._shared._dependency_checksr   skimage.feature.utilr   r   r   r   r   r   r   r   r'   markskipifparametrizer]   ri   rg   rj   r   r   r   <module>rq      s        6 6 6 6 6 6             ' ' '
2 2 2
	5 	5 	5  & K(BCC   V V  DCVr K(BCC2vd|YRYr]]*STT
 
 UT DC
D K(BCC
 
 DC
 
 
r   