U
    Gvfw                    @   s   d dl Z d dlmZmZmZmZ d dlZd dlmZ d dl	m
Z
 ddlmZ G dd dZG d	d
 d
ZG dd dZdd Zdd Zdd Zdd Zdd Zejdddddgejdddgejddd gd!d" Zd#d$ ZdS )%    N)assert_assert_equalassert_array_equalassert_array_almost_equal)raises)ndimage   )typesc                   @   st  e Zd Zejdedd Zejdedd Zejdedd Z	ejdedd	 Z
ejded
d Zejdedd Zdd Zejdedd Zejdedd Zejdedd Zdd Zejdedd Zejdedd Zejdedd Zejdedd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zejded2d3 Zejded4d5 Z ejded6d7 Z!ejded8d9 Z"ejded:d; Z#ejded<d= Z$ejded>d? Z%ejded@dA Z&ejdedBdC Z'ejdedDdE Z(ejdedFdG Z)ejdedHdI Z*ejdedJdK Z+ejdedLdM Z,ejdedNdO Z-ejdedPdQ Z.ejdedRdS Z/ejdedTdU Z0ejdedVdW Z1ejdedXdY Z2ejdedZd[ Z3ejded\d] Z4ejded^d_ Z5ejded`da Z6ejdedbdc Z7ejdeddde Z8dfdg Z9dhdi Z:djdk Z;dldm Z<dndo Z=dpdq Z>drds Z?dtdu Z@dvdw ZAdxdy ZBdzd{ ZCd|d} ZDd~d ZEdd ZFejdedd ZGejdedd ZHejdedd ZIejdedd ZJejdedd ZKejdedd ZLejdedd ZMejdedd ZNejdedd ZOejdedd ZPejdedd ZQejdedd ZRejdedd ZSejdedd ZTejdedd ZUejdedd ZVejdedd ZWejdedd ZXejdedd ZYejdedd ZZejdedd Z[ejdedd Z\ejdedd Z]ejdedd Z^ejdedd Z_ejdedd Z`ejdedd Zaejdedd Zbdd Zcdd Zddd Zedd ZfddÄ Zgddń ZhejdeddǄ ZiddɄ Zjdd˄ Zkejdedd̈́ Zlejdeddτ Zmejdeddф Znejdeddӄ ZoddՄ Zpddׄ Zqddل Zrddۄ Zsdd݄ Ztdd߄ Zudd Zvdd Zwdd Zxdd Zydd Zzdd Z{dd Z|dd Z}dd Z~dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d Zdd Zdd Zdd Zejdedd	 Zejded
d Zejdedd ZdS (  TestNdimageMorphologydtypec                 C   s  t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	|}tj|ddd\}}dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	}t|| | dddddddddg	dddddddddg	dddddddddg	d	d	d	dddd	d	d	g	ddddd
ddddg	ddd
d
dd
d
ddg	d
d
d
dddd
d
d
g	dddddddddg	dddddddddg	g	dddd	ddd
ddg	dddd	ddd
ddg	dddddd
d
ddg	dddddd
dddg	ddddd
ddddg	dddddd
d
ddg	dddd	ddd
ddg	dddd	ddd
ddg	dddd	ddd
ddg	g	g}t|| d S )Nr   r   	euclideanTreturn_indices                     numpyarrayr   distance_transform_bfr   selfr   dataoutftexpected r    G/tmp/pip-unpacked-wheel-96ln3f52/scipy/ndimage/tests/test_morphology.pytest_distance_transform_bf01   s`    	
		z2TestNdimageMorphology.test_distance_transform_bf01c                 C   s  t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	|}tj|ddd\}}dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	}t|| dddddddddg	dddddddddg	dddddddddg	dddddddddg	ddddd	ddddg	d
d
dd	d	d	dd
d
g	dddd	d	d	dddg	d	d	d	d	d	d	d	d	d	g	dddddddddg	g	dddddd
dd	dg	dddddd
dd	dg	dddddddd	dg	dddddd	d	d	dg	dddddd	d	d	dg	dddddd
dd	dg	dddddd
dd	dg	dddddd
dd	dg	dddddd
dd	dg	g	g}t|| d S )Nr   r   	cityblockTr   r   r   r   r   r   r   r   r   r   r    r    r!   test_distance_transform_bf02;   s`    	
	
	z2TestNdimageMorphology.test_distance_transform_bf02c                 C   s  t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	|}tj|ddd\}}dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	}t|| dddddddddg	dddddddddg	dddddddddg	dddddddddg	ddd	d
d
d
d	ddg	d	d	d
d
dd
d
d	d	g	d
d
d
dddd
d
d
g	dddddddddg	dddddddddg	g	dddddd	d
ddg	dddddd	d
ddg	ddddd	d
d
ddg	ddddd
d
dddg	ddddd
ddddg	ddddd
d
dddg	ddddd	d
d
ddg	dddddd	d
ddg	dddddd	d
ddg	g	g}t|| d S Nr   r   Z
chessboardTr   r   r   r   r   r   r   r   r   r   r    r    r!   test_distance_transform_bf03h   s`    	
	
	z2TestNdimageMorphology.test_distance_transform_bf03c           	      C   sX  t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	|}tj|dd\}}g }g }t j|jt jd}tj||d || tj|ddd}|| t j|jt j	d}tj|dd|d	 || tj|dd\}}|| || t j|jt jd}tj||dd
}|| || t j|jt j	d}tj|d|d}|| || t j|jt jd}t j|jt j	d}tj||d|d || || |D ]}t
|| q,|D ]}t
|| qBd S )Nr   r   r   r   	distancesFreturn_distancesr   Tr+   r   indicesr)   r   r   r-   r)   r   r-   )r   r   r   r   zerosshapefloat64appendr-   int32r   	r   r   r   ZtdtZtftZdtsZftsdtr   r    r    r!   test_distance_transform_bf04   s    	
  
   
 


  

  

   

z2TestNdimageMorphology.test_distance_transform_bf04c                 C   s  t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	|}tj|ddddgd\}}dddddddddg	dddddddddg	dddddddddg	ddddd	ddddg	dddd	d
d	dddg	ddddd	ddddg	dddddddddg	dddddddddg	dddddddddg	g	}t|| | dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	g}t|| d S )Nr   r   r   Tr   r   samplingr   r          r   r   r   r   r   r   r    r    r!   test_distance_transform_bf05   sf    	   
		z2TestNdimageMorphology.test_distance_transform_bf05c                 C   s  t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	|}tj|ddddgd\}}dddddddddg	dddddddddg	dddddddddg	dddddddddg	ddddd	ddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	}t|| | dddddddddg	dddddddddg	dddddddddg	d
d
d
d
dd
d
d
d
g	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	dddd
dddddg	dddd
dddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddd
dddddg	dddd
dddddg	g	g}t|| d S )Nr   r   r   Tr   r9   r   r   	   r   r   r   r   r   r   r    r    r!   test_distance_transform_bf06   sf    	   
		z2TestNdimageMorphology.test_distance_transform_bf06c                 C   s   t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	}tt tj|ddd W 5 Q R X d S )Nr   r   Fr*   )r   r   assert_raisesRuntimeErrorr   r   )r   r   r    r    r!   test_distance_transform_bf07  s     	
  z2TestNdimageMorphology.test_distance_transform_bf07c                 C   sh  t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	|}tj|ddd\}}t|d}t|| dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	d	d	d	d	d
d
dd	d	g	ddddd
d
dddg	d
d
d
d
d
d
d
d
d
g	dddddddddg	g	dddddd	dd
dg	dddddd	dd
dg	dddddd	dd
dg	dddddd	dd
dg	dddddd
d
d
dg	dddddd	dd
dg	dddddd	dd
dg	dddddd	dd
dg	dddddd	dd
dg	g	g}t|| d S )Nr   r   r#   Tr   r   r   r   r   r   r   r   r   r   r   distance_transform_cdtr   r   r   r   r   r   r   bfr   r    r    r!   test_distance_transform_cdt01.  sR    	  

	z3TestNdimageMorphology.test_distance_transform_cdt01c                 C   sh  t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	|}tj|ddd\}}t|d}t|| dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	d	d	dd
dd
dd	d	g	d
d
d
d
ddd
d
d
g	dddddddddg	dddddddddg	g	dddddd	d
ddg	dddddd	d
ddg	ddddddd
ddg	dddddd
d
ddg	dddddd
dddg	ddddd
d
dddg	ddddd	d
d
ddg	dddddd	d
ddg	dddddd	d
ddg	g	g}t|| d S r%   rC   rE   r    r    r!   test_distance_transform_cdt02S  sN    	

	z3TestNdimageMorphology.test_distance_transform_cdt02c           	      C   sX  t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	|}tj|dd\}}g }g }t j|jt jd}tj||d || tj|ddd}|| t j|jt jd}tj|dd|d	 || tj|dd\}}|| || t j|jt jd}tj||dd
}|| || t j|jt jd}tj|d|d}|| || t j|jt jd}t j|jt jd}tj||d|d || || |D ]}t	|| q,|D ]}t	|| qBd S )Nr   r   Tr   r'   r(   Fr*   r,   r.   r/   r0   )
r   r   r   rD   r1   r2   r5   r4   r-   r   r6   r    r    r!   test_distance_transform_cdt03w  s    	
  
   
 


  

  

 

z3TestNdimageMorphology.test_distance_transform_cdt03c                 C   s  t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	}t j|jf|j t jd}tt tj	|dd|d W 5 Q R X d S )Nr   r   r'   TFr,   )
r   r   r1   ndimr2   r5   r@   rA   r   r   )r   r   Zindices_outr    r    r!   test_distance_transform_cdt04  s$    	
z3TestNdimageMorphology.test_distance_transform_cdt04c                 C   sJ  t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	|}tj|dd\}}t|d}t|| |t j|jdd  |jd }|	t j
}t ||| t jj|dd}t || t|| d S )Nr   r   Tr   r   r'   )Zaxis)r   r   r   distance_transform_edtr   r   r-   r2   r   astyper3   multiplyaddreducesqrt)r   r   r   r   r   rF   r7   r    r    r!   test_distance_transform_edt01  s*    	
z3TestNdimageMorphology.test_distance_transform_edt01c           	      C   sX  t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	|}tj|dd\}}g }g }t j|jt jd}tj||d || tj|ddd}|| t j|jt j	d}tj|dd|d	 || tj|dd\}}|| || t j|jt jd}tj||dd
}|| || t j|jt j	d}tj|d|d}|| || t j|jt jd}t j|jt j	d}tj||d|d || || |D ]}t
|| q,|D ]}t
|| qBd S )Nr   r   Tr   r'   r(   r*   Fr,   r.   r/   r0   )r   r   r   rL   r1   r2   r3   r4   r-   r5   r   r6   r    r    r!   test_distance_transform_edt02  s    	
  
   
 


  

  

   

z3TestNdimageMorphology.test_distance_transform_edt02c                 C   s   t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	|}tj|dddgd}tj|ddgd}t|| d S Nr   r   r   r   )r:   r   r   r   r   rL   r   r   r   r   refr   r    r    r!   test_distance_transform_edt03  s    	z3TestNdimageMorphology.test_distance_transform_edt03c                 C   s   t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	|}tj|dddgd}tj|ddgd}t|| d S rT   rU   rV   r    r    r!   test_distance_transform_edt4  s    	z2TestNdimageMorphology.test_distance_transform_edt4c                 C   s   t d}t|dg d S )NF        )r   rL   r   )r   r   r    r    r!   test_distance_transform_edt5#  s    
z2TestNdimageMorphology.test_distance_transform_edt5c                 C   s   t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g	}t j|jt jd}tt tj|dd|d W 5 Q R X d S )Nr   r   r'   TF)r   r+   r)   )	r   r   r1   r2   r3   r@   rA   r   r   )r   r   Zdistances_outr    r    r!   test_distance_transform_edt6(  s$    	
z2TestNdimageMorphology.test_distance_transform_edt6c                 C   s   t dd}t|d d S Nr   r   r   generate_binary_structurer   r   structr    r    r!   test_generate_structure01<  s    z/TestNdimageMorphology.test_generate_structure01c                 C   s    t dd}t|dddg d S Nr   r^   r`   r    r    r!   test_generate_structure02@  s    z/TestNdimageMorphology.test_generate_structure02c                 C   s2   t dd}t|dddgdddgdddgg d S Nr   r   r   r^   r`   r    r    r!   test_generate_structure03D  s
    z/TestNdimageMorphology.test_generate_structure03c                 C   s2   t dd}t|dddgdddgdddgg d S )Nr   r   r^   r`   r    r    r!   test_generate_structure04J  s
    z/TestNdimageMorphology.test_generate_structure04c                 C   sr   dddgdddgdddgg}t |d}t|dddddgdddddgdddddgdddddgdddddgg d S Nr   r   r   r   iterate_structurer   r   ra   r   r    r    r!   test_iterate_structure01P  s    z.TestNdimageMorphology.test_iterate_structure01c              	   C   sX   ddgddgddgg}t |d}t|dddgdddgdddgdddgdddgg d S rh   ri   rk   r    r    r!   test_iterate_structure02[  s    z.TestNdimageMorphology.test_iterate_structure02c              	   C   s   dddgdddgdddgg}t |dd}dddddgdddddgdddddgdddddgdddddgg}t|d | t|d ddg d S rh   )r   rj   r   r   )r   ra   r   r   r    r    r!   test_iterate_structure03f  s    z.TestNdimageMorphology.test_iterate_structure03c                 C   s$   t g |}t|}t|d d S rc   r   onesr   binary_erosionr   r   r   r   r   r    r    r!   test_binary_erosion01s  s    
z+TestNdimageMorphology.test_binary_erosion01c                 C   s(   t g |}tj|dd}t|d d S Nr   border_valuero   rr   r    r    r!   test_binary_erosion02y  s    z+TestNdimageMorphology.test_binary_erosion02c                 C   s(   t dg|}t|}t|dg d S Nr   r   ro   rr   r    r    r!   test_binary_erosion03  s    
z+TestNdimageMorphology.test_binary_erosion03c                 C   s,   t dg|}tj|dd}t|dg d S rt   ro   rr   r    r    r!   test_binary_erosion04  s    z+TestNdimageMorphology.test_binary_erosion04c                 C   s,   t dg|}t|}t|dddg d S Nr   r   r   ro   rr   r    r    r!   test_binary_erosion05  s    
z+TestNdimageMorphology.test_binary_erosion05c                 C   s0   t dg|}tj|dd}t|dddg d S Nr   r   ru   ro   rr   r    r    r!   test_binary_erosion06  s    z+TestNdimageMorphology.test_binary_erosion06c                 C   s0   t dg|}t|}t|dddddg d S )Nr   r   r   ro   rr   r    r    r!   test_binary_erosion07  s    
z+TestNdimageMorphology.test_binary_erosion07c                 C   s4   t dg|}tj|dd}t|dddddg d S )Nr   r   ru   ro   rr   r    r    r!   test_binary_erosion08  s    z+TestNdimageMorphology.test_binary_erosion08c                 C   s8   t dg|}d|d< t|}t|dddddg d S )Nr   r   r   ro   rr   r    r    r!   test_binary_erosion09  s    
z+TestNdimageMorphology.test_binary_erosion09c                 C   s<   t dg|}d|d< tj|dd}t|dddddg d S Nr   r   r   r   ru   ro   rr   r    r    r!   test_binary_erosion10  s    z+TestNdimageMorphology.test_binary_erosion10c                 C   sH   t dg|}d|d< dddg}tj||dd}t|dddddg d S r   ro   r   r   r   ra   r   r    r    r!   test_binary_erosion11  s
    
z+TestNdimageMorphology.test_binary_erosion11c                 C   sJ   t dg|}d|d< dddg}tj||ddd}t|dddddg d S Nr   r   r   r   rv   originro   r   r    r    r!   test_binary_erosion12  s
    
z+TestNdimageMorphology.test_binary_erosion12c                 C   sJ   t dg|}d|d< dddg}tj||ddd}t|dddddg d S )Nr   r   r   r   r   ro   r   r    r    r!   test_binary_erosion13  s
    
z+TestNdimageMorphology.test_binary_erosion13c                 C   sF   t dg|}d|d< ddg}tj||dd}t|dddddg d S r   ro   r   r    r    r!   test_binary_erosion14  s
    z+TestNdimageMorphology.test_binary_erosion14c                 C   sH   t dg|}d|d< ddg}tj||ddd}t|dddddg d S r   ro   r   r    r    r!   test_binary_erosion15  s
    z+TestNdimageMorphology.test_binary_erosion15c                 C   s0   t ddg|}tj|dd}t|dgg d S rt   ro   rr   r    r    r!   test_binary_erosion16  s    z+TestNdimageMorphology.test_binary_erosion16c                 C   s,   t ddg|}t|}t|dgg d S rx   ro   rr   r    r    r!   test_binary_erosion17  s    
z+TestNdimageMorphology.test_binary_erosion17c                 C   s0   t ddg|}t|}t|dddgg d S )Nr   r   r   ro   rr   r    r    r!   test_binary_erosion18  s    
z+TestNdimageMorphology.test_binary_erosion18c                 C   s4   t ddg|}tj|dd}t|dddgg d S )Nr   r   ru   ro   rr   r    r    r!   test_binary_erosion19  s    z+TestNdimageMorphology.test_binary_erosion19c                 C   s@   t ddg|}t|}t|dddgdddgdddgg d S r{   ro   rr   r    r    r!   test_binary_erosion20  s    
z+TestNdimageMorphology.test_binary_erosion20c                 C   sD   t ddg|}tj|dd}t|dddgdddgdddgg d S r}   ro   rr   r    r    r!   test_binary_erosion21  s    z+TestNdimageMorphology.test_binary_erosion21c                 C   sL  ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}tj|dd}t|| d S Nr   r   ru   r   r   r   rq   r   r   r   r   r   r   r    r    r!   test_binary_erosion22  s,    z+TestNdimageMorphology.test_binary_erosion22c                 C   sZ  t dd}ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}tddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}t j||dd}t|| d S )Nr   r   r   ru   )r   r_   r   r   rq   r   r   r   ra   r   r   r   r    r    r!   test_binary_erosion23  s.    z+TestNdimageMorphology.test_binary_erosion23c                 C   s^  ddgddgg}ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}tj||dd}t|| d S r   r   r   r    r    r!   test_binary_erosion24,  s2    z+TestNdimageMorphology.test_binary_erosion24c                 C   sj  dddgdddgdddgg}ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}tj||dd}t|| d S r   r   r   r    r    r!   test_binary_erosion25C  s4    z+TestNdimageMorphology.test_binary_erosion25c                 C   sl  dddgdddgdddgg}ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}tj||ddd}t|| d S )Nr   r   r   r   r   r   r   r    r    r!   test_binary_erosion26[  s8    
z+TestNdimageMorphology.test_binary_erosion26c                 C   s,  dddgdddgdddgg}dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgg}t dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggt}tj||ddd}t|| d S Nr   r   r   rv   
iterationsr   r   boolr   rq   r   r   ra   r   r   r   r    r    r!   test_binary_erosion27t  s4    
z+TestNdimageMorphology.test_binary_erosion27c                 C   s<  dddgdddgdddgg}dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgg}t dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggt}t |jt}tj||dd|d t|| d S )Nr   r   r   rv   r   outputr   r   r   r1   r2   r   rq   r   r   r    r    r!   test_binary_erosion28  s8    
 z+TestNdimageMorphology.test_binary_erosion28c                 C   s,  dddgdddgdddgg}dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgg}t dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggt}tj||ddd}t|| d S )Nr   r   r   r   r   r   r    r    r!   test_binary_erosion29  s6     z+TestNdimageMorphology.test_binary_erosion29c                 C   sZ  dddgdddgdddgg}dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgg}t dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggt}t |jt}tj||dd|d t|| tj||dd|d t|| d S )Nr   r   r   r   r   r   r    r    r!   test_binary_erosion30  sB    
 

 z+TestNdimageMorphology.test_binary_erosion30c                 C   s>  dddgdddgdddgg}dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgg}t dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggt}t |jt}tj||dd|dd t|| d S )Nr   r   r   )rv   r   r   r   r   r   r    r    r!   test_binary_erosion31  s:    
  z+TestNdimageMorphology.test_binary_erosion31c                 C   s,  dddgdddgdddgg}dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgg}t dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggt}tj||ddd}t|| d S r   r   r   r    r    r!   test_binary_erosion32  s6     z+TestNdimageMorphology.test_binary_erosion32c                 C   s  dddgdddgdddgg}dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgg}dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgg}t dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggt}tj||d|dd}t|| d S )Nr   r   r   )rv   maskr   r   r   ra   r   r   r   r   r    r    r!   test_binary_erosion33   sH      z+TestNdimageMorphology.test_binary_erosion33c                 C   s  dddgdddgdddgg}dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgg}dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgg}t dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggt}tj||d|d}t|| d S )Nr   r   )rv   r   r   r   r    r    r!   test_binary_erosion34  sF     z+TestNdimageMorphology.test_binary_erosion34c                 C   s  dddgdddgdddgg}dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgg}t dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggt}dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgg}t ||}t |t |}t ||}t |jt}tj	||dd|d|d t
|| d S )Nr   r   r   )rv   r   r   r   r   )r   r   r   logical_andlogical_not
logical_orr1   r2   r   rq   r   )r   ra   r   r   tmpr   r   r    r    r!   test_binary_erosion35:  sR    
  z+TestNdimageMorphology.test_binary_erosion35c                 C   s*  dddgdddgdddgg}ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ||}t |t |}t ||}tj|||ddd}t|| d S )Nr   r   r   )r   rv   r   )r   r   r   r   r   r   rq   r   )r   ra   r   r   r   r   r   r    r    r!   test_binary_erosion36\  sN    
 z+TestNdimageMorphology.test_binary_erosion36c                 C   sn   t jdddgdddgdddggtd}t |}tj|||dddd}t||k ttj||ddd| d S )Nr   r   r'   T)	structurer   r   rv   brute_force)r   r   rv   )r   r   r   Z
zeros_liker   rq   r   r   )r   abr   r    r    r!   test_binary_erosion37  s$    
 
z+TestNdimageMorphology.test_binary_erosion37c              	   C   sP   t jdddgdddgdddggtd}d}tt tj||d}W 5 Q R X d S )Nr   r   r'   g       @r   )r   r   r   r@   	TypeErrorr   rq   )r   r   r   _r    r    r!   test_binary_erosion38  s    
z+TestNdimageMorphology.test_binary_erosion38c                 C   sF  t d}dddgdddgdddgg}dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgg}t dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggt}t |jt}tj||d||d t|| d S Nr   r   r   r   )	r   r5   r   r   r1   r2   r   rq   r   r   r   ra   r   r   r   r    r    r!   test_binary_erosion39  s:    

 z+TestNdimageMorphology.test_binary_erosion39c                 C   sF  t d}dddgdddgdddgg}dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgg}t dddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggt}t |jt}tj||d||d t|| d S r   )	r   Zint64r   r   r1   r2   r   rq   r   r   r    r    r!   test_binary_erosion40  s:    

 z+TestNdimageMorphology.test_binary_erosion40c                 C   s$   t g |}t|}t|d d S rc   r   rp   r   binary_dilationr   rr   r    r    r!   test_binary_dilation01  s    
z,TestNdimageMorphology.test_binary_dilation01c                 C   s$   t g |}t|}t|d d S )Nr   r   r1   r   r   r   rr   r    r    r!   test_binary_dilation02  s    
z,TestNdimageMorphology.test_binary_dilation02c                 C   s(   t dg|}t|}t|dg d S rc   r   rr   r    r    r!   test_binary_dilation03  s    
z,TestNdimageMorphology.test_binary_dilation03c                 C   s(   t dg|}t|}t|dg d S rx   r   rr   r    r    r!   test_binary_dilation04  s    
z,TestNdimageMorphology.test_binary_dilation04c                 C   s,   t dg|}t|}t|dddg d S Nr   r   r   rr   r    r    r!   test_binary_dilation05  s    
z,TestNdimageMorphology.test_binary_dilation05c                 C   s,   t dg|}t|}t|dddg d S )Nr   r   r   rr   r    r    r!   test_binary_dilation06  s    
z,TestNdimageMorphology.test_binary_dilation06c                 C   s4   t dg|}d|d< t|}t|dddg d S r   r   rr   r    r    r!   test_binary_dilation07  s    
z,TestNdimageMorphology.test_binary_dilation07c                 C   s@   t dg|}d|d< d|d< t|}t|dddddg d S )Nr   r   r   r   rr   r    r    r!   test_binary_dilation08  s
    
z,TestNdimageMorphology.test_binary_dilation08c                 C   s8   t dg|}d|d< t|}t|dddddg d S Nr   r   r   r   rr   r    r    r!   test_binary_dilation09  s    
z,TestNdimageMorphology.test_binary_dilation09c                 C   s<   t dg|}d|d< tj|dd}t|dddddg d S )Nr   r   r   r   r   r   rr   r    r    r!   test_binary_dilation10  s    z,TestNdimageMorphology.test_binary_dilation10c                 C   s<   t dg|}d|d< tj|dd}t|dddddg d S )Nr   r   r   r   r   rr   r    r    r!   test_binary_dilation11  s    z,TestNdimageMorphology.test_binary_dilation11c                 C   sD   t dg|}d|d< dddg}t||}t|dddddg d S r   r   r   r    r    r!   test_binary_dilation12  s
    
z,TestNdimageMorphology.test_binary_dilation12c                 C   sH   t dg|}d|d< dddg}tj||dd}t|dddddg d S )Nr   r   r   ru   r   r   r    r    r!   test_binary_dilation13  s
    
z,TestNdimageMorphology.test_binary_dilation13c                 C   sH   t dg|}d|d< dddg}tj||dd}t|dddddg d S )Nr   r   r   r   r   r   r   r    r    r!   test_binary_dilation14  s
    
z,TestNdimageMorphology.test_binary_dilation14c                 C   sJ   t dg|}d|d< dddg}tj||ddd}t|dddddg d S )Nr   r   r   r   r   rv   r   r   r    r    r!   test_binary_dilation15$  s    
 z,TestNdimageMorphology.test_binary_dilation15c                 C   s,   t ddg|}t|}t|dgg d S rc   r   rr   r    r    r!   test_binary_dilation16-  s    
z,TestNdimageMorphology.test_binary_dilation16c                 C   s,   t ddg|}t|}t|dgg d S rx   r   rr   r    r    r!   test_binary_dilation173  s    
z,TestNdimageMorphology.test_binary_dilation17c                 C   s0   t ddg|}t|}t|dddgg d S )Nr   r   r   rr   r    r    r!   test_binary_dilation189  s    
z,TestNdimageMorphology.test_binary_dilation18c                 C   s@   t ddg|}t|}t|dddgdddgdddgg d S r   r   rr   r    r    r!   test_binary_dilation19?  s    
z,TestNdimageMorphology.test_binary_dilation19c                 C   sH   t ddg|}d|d< t|}t|dddgdddgdddgg d S )Nr   r   r   r   r   r   rr   r    r    r!   test_binary_dilation20G  s    
z,TestNdimageMorphology.test_binary_dilation20c                 C   sV   t dd}tddg|}d|d< t ||}t|dddgdddgdddgg d S )Nr   r   r   r   )r   r_   r   r1   r   r   )r   r   ra   r   r   r    r    r!   test_binary_dilation21P  s    z,TestNdimageMorphology.test_binary_dilation21c                 C   sH  ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}t|}t|| d S r]   r   r   r   r   r   r   r    r    r!   test_binary_dilation22Z  s,    
z,TestNdimageMorphology.test_binary_dilation22c                 C   sL  ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}tj|dd}t|| d S Nr   r   ru   r   r   r    r    r!   test_binary_dilation23o  s,    z,TestNdimageMorphology.test_binary_dilation23c                 C   sL  ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}tj|dd}t|| d S )Nr   r   r   r   r   r   r    r    r!   test_binary_dilation24  s,    z,TestNdimageMorphology.test_binary_dilation24c                 C   sN  ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}tj|ddd}t|| d S )Nr   r   r   r   r   r   r    r    r!   test_binary_dilation25  s,    z,TestNdimageMorphology.test_binary_dilation25c                 C   sV  t dd}ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}tddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}t ||}t|| d S re   )r   r_   r   r   r   r   r   r    r    r!   test_binary_dilation26  s.    z,TestNdimageMorphology.test_binary_dilation26c                 C   sZ  ddgddgg}ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}t||}t|| d S r]   r   r   r    r    r!   test_binary_dilation27  s2    z,TestNdimageMorphology.test_binary_dilation27c              	   C   s|   ddddgddddgddddgddddgg}t ddddgddddgddddgddddgg|}tj|dd}t|| d S r   r   r   r    r    r!   test_binary_dilation28  s    






z,TestNdimageMorphology.test_binary_dilation28c                 C   s   ddgddgg}dddddgdddddgdddddgdddddgdddddgg}t dddddgdddddgdddddgdddddgdddddggt}tj||dd}t|| d S )Nr   r   r   r   r   r   r   r   r   r   r   r    r    r!   test_binary_dilation29  s&    z,TestNdimageMorphology.test_binary_dilation29c                 C   s   ddgddgg}dddddgdddddgdddddgdddddgdddddgg}t dddddgdddddgdddddgdddddgdddddggt}t |jt}tj||d|d t|| d S )Nr   r   r   r   r   r   r   r   r1   r2   r   r   r   r   r    r    r!   test_binary_dilation30  s(    z,TestNdimageMorphology.test_binary_dilation30c                 C   s   ddgddgg}dddddgdddddgdddddgdddddgdddddgg}t dddddgdddddgdddddgdddddgdddddggt}tj||dd}t|| d S )Nr   r   r   r   r   r   r    r    r!   test_binary_dilation31  s&    z,TestNdimageMorphology.test_binary_dilation31c                 C   s   ddgddgg}dddddgdddddgdddddgdddddgdddddgg}t dddddgdddddgdddddgdddddgdddddggt}t |jt}tj||d|d t|| d S )Nr   r   r   r   r   r   r    r    r!   test_binary_dilation32  s(    z,TestNdimageMorphology.test_binary_dilation32c                 C   s  dddgdddgdddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddggt}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddggt}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddggt}tj||d|dd}t|| d S Nr   r   r   )r   r   rv   r   r   r    r    r!   test_binary_dilation33.  sT    	
 z,TestNdimageMorphology.test_binary_dilation33c                 C   s|  dddgdddgdddgg}ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddggt}t |jt}tj||d|dd}t|| d S r   r   r   r    r    r!   test_binary_dilation34O  s<    
 z,TestNdimageMorphology.test_binary_dilation34c                 C   s  ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ||}t |t |}t ||}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}tj||ddd}t|| d S )Nr   r   r   )r   r   rv   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r    r    r!   test_binary_dilation35h  s\     z,TestNdimageMorphology.test_binary_dilation35c                 C   s  dddgdddgdddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddggt}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddggt}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddggt}tj|||dd}t|| d S Nr   r   )r   rv   )r   r   r   r   binary_propagationr   r   r    r    r!   test_binary_propagation01  sT    	 z/TestNdimageMorphology.test_binary_propagation01c                 C   sz  dddgdddgdddgg}ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddggt}t |jt}tj|||dd}t|| d S r   )r   r   r   r1   r2   r   r   r   r   r    r    r!   test_binary_propagation02  s<     z/TestNdimageMorphology.test_binary_propagation02c                 C   sH  ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}t|}t|| d S r]   )r   r   r   binary_openingr   r   r    r    r!   test_binary_opening01  s,    
z+TestNdimageMorphology.test_binary_opening01c                 C   sV  t dd}ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}tddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}t ||}t|| d S re   )r   r_   r   r   r   r   r   r    r    r!   test_binary_opening02  s.    z+TestNdimageMorphology.test_binary_opening02c                 C   sH  ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}t|}t|| d S r]   )r   r   r   binary_closingr   r   r    r    r!   test_binary_closing01  s,    
z+TestNdimageMorphology.test_binary_closing01c                 C   sV  t dd}ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}tddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}t ||}t|| d S )Nr   r   r   )r   r_   r   r   r   r   r   r    r    r!   test_binary_closing02  s.    z+TestNdimageMorphology.test_binary_closing02c                 C   s,  t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddggt}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddggt}t|}t|| d S r]   r   r   r   r   Zbinary_fill_holesr   r   r   r   r   r    r    r!   test_binary_fill_holes01!  s,    
z.TestNdimageMorphology.test_binary_fill_holes01c                 C   s,  t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddggt}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddggt}t|}t|| d S r]   r   r   r    r    r!   test_binary_fill_holes023  s,    
z.TestNdimageMorphology.test_binary_fill_holes02c                 C   s,  t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddggt}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddggt}t|}t|| d S r]   r   r   r    r    r!   test_binary_fill_holes03E  s,    
z.TestNdimageMorphology.test_binary_fill_holes03c              	   C   s   t dddddgdddddgdd	dddgg}dd
dgddd
gg}tj||d}tdddddgdddddgdddddgg| d S Nr   r   r   r   r   r   r   r>   r   r   )	footprintr   r   r   grey_erosionr   r   r   r  r   r    r    r!   test_grey_erosion01W  s    z)TestNdimageMorphology.test_grey_erosion01c              	   C   s   t dddddgdddddgdd	dddgg}dd
dgddd
gg}tj|||d tdddddgdddddgdddddgg| d S )Nr   r   r   r   r   r   r   r>   r   r   )r  r   r  )r   r   r  r    r    r!   test_grey_erosion01_overlapa  s    z1TestNdimageMorphology.test_grey_erosion01_overlapc              	   C   s   t dddddgdddddgdd	dddgg}dd
dgddd
gg}d
d
d
gd
d
d
gg}tj|||d}tdddddgdddddgdddddgg| d S Nr   r   r   r   r   r   r   r>   r   r   r  r   r  r   r   r  r   r   r    r    r!   test_grey_erosion02k  s    z)TestNdimageMorphology.test_grey_erosion02c              	   C   s   t dddddgdddddgdd	dddgg}dd
dgddd
gg}dddgdddgg}tj|||d}tddd
d
d
gddd
dd
gddddd
gg| d S r  r  r  r    r    r!   test_grey_erosion03w  s    z)TestNdimageMorphology.test_grey_erosion03c              	   C   s   t dddddgdddddgdd	dddgg}d
ddgdd
dgg}tj||d}tdddddgddd	ddgd	d	d	ddgg| d S r  r   r   r   grey_dilationr   r  r    r    r!   test_grey_dilation01  s    z*TestNdimageMorphology.test_grey_dilation01c              	   C   s   t dddddgdddddgdd	dddgg}d
ddgdd
dgg}d
d
d
gd
d
d
gg}tj|||d}tdddddgddd	ddgd	d	d	ddgg| d S r  r  r  r    r    r!   test_grey_dilation02  s    z*TestNdimageMorphology.test_grey_dilation02c              	   C   s   t dddddgdddddgdd	dddgg}d
ddgdd
dgg}dddgdddgg}tj|||d}td	d	dddgd	dddd	gdddd	d	gg| d S )Nr   r   r   r   r   r   r   r>   r   r   r  
   r  r  r    r    r!   test_grey_dilation03  s    z*TestNdimageMorphology.test_grey_dilation03c              	   C   sz   t dddddgdddddgdd	dddgg}dd
dgddd
gg}tj||d}tj||d}tj||d}t|| d S r  r   r   r   r  r  grey_openingr   r   r   r  r   r   r   r    r    r!   test_grey_opening01  s    z)TestNdimageMorphology.test_grey_opening01c              	   C   s   t dddddgdddddgdd	dddgg}dd
dgddd
gg}d
d
d
gd
d
d
gg}tj|||d}tj|||d}tj|||d}t|| d S r  r  r   r   r  r   r   r   r   r    r    r!   test_grey_opening02  s     z)TestNdimageMorphology.test_grey_opening02c              	   C   sz   t dddddgdddddgdd	dddgg}dd
dgddd
gg}tj||d}tj||d}tj||d}t|| d S r  r   r   r   r  r  grey_closingr   r  r    r    r!   test_grey_closing01  s    z)TestNdimageMorphology.test_grey_closing01c              	   C   s   t dddddgdddddgdd	dddgg}dd
dgddd
gg}d
d
d
gd
d
d
gg}tj|||d}tj|||d}tj|||d}t|| d S r  r  r  r    r    r!   test_grey_closing02  s     z)TestNdimageMorphology.test_grey_closing02c              	   C   s   t dddddgdddddgdd	dddgg}dd
dgddd
gg}d
d
d
gd
d
d
gg}tj|||d}tj|||d}|| }t |j|j}tj||||d t	|| d S Nr   r   r   r   r   r   r   r>   r   r   r  )r  r   r   )
r   r   r   r  r  r1   r2   r   morphological_gradientr   r   r   r  r   Ztmp1Ztmp2r   r   r    r    r!   test_morphological_gradient01  s&     z3TestNdimageMorphology.test_morphological_gradient01c              	   C   s   t dddddgdddddgdd	dddgg}dd
dgddd
gg}d
d
d
gd
d
d
gg}tj|||d}tj|||d}|| }tj|||d}t|| d S r  )r   r   r   r  r  r!  r   r"  r    r    r!   test_morphological_gradient02  s"    z3TestNdimageMorphology.test_morphological_gradient02c              	   C   s   t dddddgdddddgdd	dddgg}dd
dgddd
gg}d
d
d
gd
d
d
gg}tj|||d}tj|||d}|| d|  }t |j|j}tj||||d t	|| d S r   )
r   r   r   r  r  r1   r2   r   morphological_laplacer   r"  r    r    r!   test_morphological_laplace01  s&     z2TestNdimageMorphology.test_morphological_laplace01c              	   C   s   t dddddgdddddgdd	dddgg}dd
dgddd
gg}d
d
d
gd
d
d
gg}tj|||d}tj|||d}|| d|  }tj|||d}t|| d S r  )r   r   r   r  r  r%  r   r"  r    r    r!   test_morphological_laplace02  s"    z2TestNdimageMorphology.test_morphological_laplace02c              	   C   s   t dddddgdddddgdd	dddgg}dd
dgddd
gg}d
d
d
gd
d
d
gg}tj|||d}|| }t |j|j}tj||||d t|| d S r   )	r   r   r   r  r1   r2   r   white_tophatr   r  r    r    r!   test_white_tophat01  s      z)TestNdimageMorphology.test_white_tophat01c              	   C   s   t dddddgdddddgdd	dddgg}dd
dgddd
gg}d
d
d
gd
d
d
gg}tj|||d}|| }tj|||d}t|| d S r  )r   r   r   r  r(  r   r  r    r    r!   test_white_tophat02!  s    z)TestNdimageMorphology.test_white_tophat02c                 C   s,  t jdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggt jd}t jdt jd}t jdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggt jd}tj||d}t|| d S Nr   r   r'   r   r   r   )r   r   bool_rp   r   r(  r   r   r   r   r   r   r    r    r!   test_white_tophat03.  s.    z)TestNdimageMorphology.test_white_tophat03c                 C   sD   t jdt jd}t jdt jd}t j|t jd}tj|||d d S Nr   r'   r,  )r   r   )r   eyer.  rp   
empty_liker3   r   r(  r   r   r   r   r    r    r!   test_white_tophat04B  s    z)TestNdimageMorphology.test_white_tophat04c              	   C   s   t dddddgdddddgdd	dddgg}dd
dgddd
gg}d
d
d
gd
d
d
gg}tj|||d}|| }t |j|j}tj||||d t|| d S r   )	r   r   r   r  r1   r2   r   black_tophatr   r  r    r    r!   test_black_tophat01J  s      z)TestNdimageMorphology.test_black_tophat01c              	   C   s   t dddddgdddddgdd	dddgg}dd
dgddd
gg}d
d
d
gd
d
d
gg}tj|||d}|| }tj|||d}t|| d S r  )r   r   r   r  r6  r   r  r    r    r!   test_black_tophat02X  s    z)TestNdimageMorphology.test_black_tophat02c                 C   s,  t jdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggt jd}t jdt jd}t jdddddddgdddddddgdddddddgdddddddgdddddddgdddddddgdddddddggt jd}tj||d}t|| d S r+  )r   r   r.  rp   r   r6  r   r/  r    r    r!   test_black_tophat03e  s.    z)TestNdimageMorphology.test_black_tophat03c                 C   sD   t jdt jd}t jdt jd}t j|t jd}tj|||d d S r1  )r   r2  r.  rp   r3  r3   r   r6  r4  r    r    r!   test_black_tophat04y  s    z)TestNdimageMorphology.test_black_tophat04c                 C   s  dddgdddgdddgg}dddddgdddddgdddddgdddddgdddddgdddddgdddddgdddddgg}t dddddgdddddgdddddgdddddgdddddgdddddgdddddgdddddgg|}t |jt}tj|||d t|| d S )Nr   r   r   )r   r   r1   r2   r   r   binary_hit_or_missr   r   r    r    r!   test_hit_or_miss01  s6    z(TestNdimageMorphology.test_hit_or_miss01c                 C   s   dddgdddgdddgg}ddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgg|}t||}t|| d S r]   r   r   r   r<  r   r   r    r    r!   test_hit_or_miss02  s$    z(TestNdimageMorphology.test_hit_or_miss02c                 C   s  dddgdddgdddgg}dddgdddgdddgg}ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg|}t|||}t|| d S r]   r>  )r   r   Zstruct1Zstruct2r   r   r   r    r    r!   test_hit_or_miss03  s<    z(TestNdimageMorphology.test_hit_or_miss03N)__name__
__module____qualname__pytestmarkparametrizer	   r"   r$   r&   r8   r=   r?   rB   rG   rH   rI   rK   rR   rS   rX   rY   r[   r\   rb   rd   rf   rg   rl   rm   rn   rs   rw   ry   rz   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   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   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$  r&  r'  r)  r*  r0  r5  r7  r8  r9  r:  r=  r?  r@  r    r    r    r!   r
      s  
,
,
,
0
+
+
$
#
0

0



























"#




















	






!
(!








r
   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestDilateFixc              
   C   s~   t jdddddgdddddgdddddgdddddgdddddggt jd| _t d| _tj| j| jd}|t j| _d S )Nr   r   r'   r,  r-  )	r   r   Zuint8rp   sq3x3r   r   view
dilated3x3)r   rJ  r    r    r!   setup_method  s    zTestDilateFix.setup_methodc                 C   s&   t j| j| jd}t|| jd  d S )Nr-  r   )r   r  r   rH  r   rJ  r   resultr    r    r!   test_dilation_square_structure  s    z,TestDilateFix.test_dilation_square_structurec                 C   s    t j| jdd}t|| j d S )Nr   )size)r   r  r   r   rJ  rL  r    r    r!   test_dilation_scalar_size  s    z'TestDilateFix.test_dilation_scalar_sizeN)rA  rB  rC  rK  rN  rP  r    r    r    r!   rG    s   rG  c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestBinaryOpeningClosingc                 C   sp   t jdtd}d|ddddf< d|d< || _t d| _t| j| jdd d| _t	| j| jdd d| _
d S )	N)r   r   r'   Tr   r   )r   r   r,  r   )r   r1   r   r   rp   rH  r   r   
opened_oldr   
closed_old)r   r   r    r    r!   rK    s        z%TestBinaryOpeningClosing.setup_methodc              
   C   s,   t | j| jdd dd dd}t|| j d S Nr   r   F)r   r   r   rH  r   rR  )r   Z
opened_newr    r    r!   test_opening_new_arguments  s       z3TestBinaryOpeningClosing.test_opening_new_argumentsc              
   C   s,   t | j| jdd dd dd}t|| j d S rT  )r   r   r   rH  r   rS  )r   Z
closed_newr    r    r!   test_closing_new_arguments  s       z3TestBinaryOpeningClosing.test_closing_new_argumentsN)rA  rB  rC  rK  rU  rV  r    r    r    r!   rQ    s   rQ  c                  C   s4   t dg} tttj| dd tttj| dd d S Nr   g      ?r         ?)r   rp   r@   r   r   rq   r   r    r    r!   )test_binary_erosion_noninteger_iterations  s    rZ  c                  C   s4   t dg} tttj| dd tttj| dd d S rW  )r   rp   r@   r   r   r   rY  r    r    r!   *test_binary_dilation_noninteger_iterations  s    r[  c                  C   s4   t dg} tttj| dd tttj| dd d S rW  )r   rp   r@   r   r   r   rY  r    r    r!   )test_binary_opening_noninteger_iterations	  s    r\  c                  C   s4   t dg} tttj| dd tttj| dd d S rW  )r   rp   r@   r   r   r   rY  r    r    r!   )test_binary_closing_noninteger_iterations	  s    r]  c                  C   s`   t dg} tj| dddtj| dtddks4ttj| dddtj| dtddks\td S )Nr   r   rX  )r   r   rZ   )r   rp   r   rq   r   AssertionErrorrY  r    r    r!   ;test_binary_closing_noninteger_brute_force_passes_when_true	  s        r_  functionrq   r   r   r   r   r   r   FTc                 C   sj   t jd}|jddddt}tt| }| }||||d}t	|| |||||d t	|| d S )N{   r   r   d   lowhighrO  )r   r   )r   r   r   )
r   randomRandomStaterandintrM   r   getattrr   copyr   )r`  r   r   rstater   Zndi_func	data_origr   r    r    r!   test_binary_input_as_output#	  s    

rm  c                  C   sZ   t jd} | jddddt}| }t|}t	|| tj||d t	|| d S )Nra  r   r   rb  rc  r;  )
r   rf  rg  rh  rM   r   rj  r   r<  r   )rk  r   rl  r   r    r    r!   'test_binary_hit_or_miss_input_as_output8	  s    

rn  )r   Znumpy.testingr   r   r   r   rD  r   r@   Zscipyr    r	   r
   rG  rQ  rZ  r[  r\  r]  r_  rE  rF  rm  rn  r    r    r    r!   <module>   sL                    K
