U
    »mœdwœ ã                   @   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„ ZEd€d�„ ZFej de¡d‚dƒ„ ƒZGej de¡d„d…„ ƒZHej de¡d†d‡„ ƒZIej de¡dˆd‰„ ƒZJej de¡dŠd‹„ ƒZKej de¡dŒd�„ ƒZLej de¡dŽd�„ ƒZMej de¡d�d‘„ ƒZNej de¡d’d“„ ƒZOej de¡d”d•„ ƒZPej de¡d–d—„ ƒZQej de¡d˜d™„ ƒZRej de¡dšd›„ ƒZSej de¡dœd�„ ƒZTej de¡dždŸ„ ƒZUej de¡d d¡„ ƒZVej de¡d¢d£„ ƒZWej de¡d¤d¥„ ƒZXej de¡d¦d§„ ƒZYej de¡d¨d©„ ƒZZe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`ej de¡d¶d·„ ƒZaej de¡d¸d¹„ ƒZbdºd»„ Zcd¼d½„ Zdd¾d¿„ ZedÀdÁ„ ZfdÂdÃ„ ZgdÄdÅ„ Zhej de¡dÆdÇ„ ƒZidÈdÉ„ ZjdÊdË„ Zkej de¡dÌdÍ„ ƒZlej de¡dÎdÏ„ ƒZmej de¡dÐdÑ„ ƒZnej de¡dÒdÓ„ ƒZodÔdÕ„ ZpdÖd×„ ZqdØdÙ„ ZrdÚdÛ„ ZsdÜdÝ„ ZtdÞdß„ Zudàdá„ Zvdâdã„ Zwdädå„ Zxdædç„ Zydèdé„ Zzdê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ƒdüdý„ Z„dþdÿ„ Z…�d �d„ Z†�d�d„ Z‡�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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    ú\/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/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tftÚ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   r:   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%   rD   rF   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   rE   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   rA   rB   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   rG   r8   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   rM   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   rM   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 rU   rV   rW   r    r    r!   Útest_distance_transform_edt4  s    øø	z2TestNdimageMorphology.test_distance_transform_edt4c                 C   s   t  d¡}t|dgƒ d S )NFç        )r   rM   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   rA   rB   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_   ra   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_   ra   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_   ra   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   rb   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 ri   rj   rl   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 ri   )r   rk   r   r   )r   rb   r   r   r    r    r!   Útest_iterate_structure03f  s    þüz.TestNdimageMorphology.test_iterate_structure03c                 C   s$   t  g |¡}t |¡}t|dƒ d S rd   ©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_valuerp   rs   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   rp   rs   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 ru   rp   rs   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   rp   rs   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   rv   rp   rs   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   rp   rs   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   rv   rp   rs   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   rp   rs   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   rv   rp   rs   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ƒ   rp   ©r   r   r   rb   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   éÿÿÿÿ©rw   Úoriginrp   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‰   rp   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ƒ   rp   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‡   rp   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 ru   rp   rs   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 ry   rp   rs   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   rp   rs   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   rv   rp   rs   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|   rp   rs   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~   rp   rs   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   rv   ©r   r   r   rr   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   rv   )r   r`   r   r   rr   r   ©r   r   rb   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   ©rw   Ú
iterations©r   r   Úboolr   rr   r   ©r   rb   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   ©rw   r¡   Úoutput©r   r   r£   r1   r2   r   rr   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�   )rw   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ˆ   )rw   Úmaskr¡   r¢   ©r   rb   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   )rw   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�   )rw   r¡   r§   rŠ   r®   )r   r   r£   Úlogical_andÚlogical_notÚ
logical_orr1   r2   r   rr   r   )r   rb   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®   rw   rŠ   )r   r   r²   r³   r´   r   rr   r   )r   rb   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¡   rw   Úbrute_force)r¸   r¡   rw   )r   r   r£   Z
zeros_liker   rr   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£   rA   Ú	TypeErrorr   rr   )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   rr   r   ©r   r¡   rb   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   rr   r   rÂ   r    r    r!   Útest_binary_erosion40¬  s:    
þúúú
 ÿz+TestNdimageMorphology.test_binary_erosion40c                 C   s$   t  g |¡}t |¡}t|dƒ d S rd   ©r   rq   r   Úbinary_dilationr   rs   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   rs   r    r    r!   Útest_binary_dilation02Ê  s    
z,TestNdimageMorphology.test_binary_dilation02c                 C   s(   t  dg|¡}t |¡}t|dgƒ d S rd   rÅ   rs   r    r    r!   Útest_binary_dilation03Ð  s    
z,TestNdimageMorphology.test_binary_dilation03c                 C   s(   t  dg|¡}t |¡}t|dgƒ d S ry   rÈ   rs   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Å   rs   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È   rs   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È   rs   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È   rs   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È   rs   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È   rs   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È   rs   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   rv   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Š   rw   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 rd   rÅ   rs   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 ry   rÈ   rs   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Å   rs   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Å   rs   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È   rs   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   rb   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   rv   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 rf   )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®   rw   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Š   rw   )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®   rw   )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 rf   )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_rq   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/  rq   Ú
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  r7  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/  rq   r   r7  r   r0  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 r2  )r   r3  r/  rq   r4  r3   r   r7  r5  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&   r9   r>   r@   rC   rH   rI   rJ   rL   rS   rT   rY   rZ   r\   r]   rc   re   rg   rh   rm   rn   ro   rt   rx   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*  r+  r1  r6  r8  r9  r:  r;  r>  r@  rA  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uint8rq   Úsq3x3r   rÆ   ÚviewÚ
dilated3x3)r   rK  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   rI  r   rK  ©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   rK  rM  r    r    r!   Útest_dilation_scalar_sizeÙ  s    z'TestDilateFix.test_dilation_scalar_sizeN)rB  rC  rD  rL  rO  rQ  r    r    r    r!   rH  Æ  s   rH  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   rq   rI  r   rú   Ú
opened_oldrý   Ú
closed_old)r   rº   r    r    r!   rL  à  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   rI  r   rS  )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 rU  )r   rý   r   rI  r   rT  )r   Z
closed_newr    r    r!   Útest_closing_new_argumentsð  s       ÿz3TestBinaryOpeningClosing.test_closing_new_argumentsN)rB  rC  rD  rL  rV  rW  r    r    r    r!   rR  Þ  s   rR  c                  C   s4   t  dg¡} tttj| dd� tttj| dd� d S ©Nr   g      à?r½   ç      ø?)r   rq   rA   r¾   r   rr   ©r   r    r    r!   Ú)test_binary_erosion_noninteger_iterationsö  s    r[  c                  C   s4   t  dg¡} tttj| dd� tttj| dd� d S rX  )r   rq   rA   r¾   r   rÆ   rZ  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 rX  )r   rq   rA   r¾   r   rú   rZ  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 rX  )r   rq   rA   r¾   r   rý   rZ  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   rY  )r¡   r¹   r[   )r   rq   r   rr   r£   ÚAssertionErrorrZ  r    r    r!   Ú;test_binary_closing_noninteger_brute_force_passes_when_true	  s      ÿþ  ÿþr`  Úfunctionrr   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ÚhighrP  )r¹   r¡   )r¹   r¡   r§   )
r   ÚrandomÚRandomStateÚrandintrN   r£   Úgetattrr   Úcopyr   )ra  r¡   r¹   Úrstater   Zndi_funcÚ	data_origr   r    r    r!   Útest_binary_input_as_output#	  s    

rn  c                  C   sZ   t j d¡} | jdddd� t¡}| ¡ }t |¡}t	||ƒ tj||d� t	||ƒ d S )Nrb  r   r   rc  rd  r<  )
r   rg  rh  ri  rN   r£   rk  r   r=  r   )rl  r   rm  r   r    r    r!   Ú'test_binary_hit_or_miss_input_as_output8	  s    

ro  )r   Znumpy.testingr   r   r   r   rE  r   rA   Zscipyr   Ú r	   r
   rH  rR  r[  r\  r]  r^  r`  rF  rG  rn  ro  r    r    r    r!   Ú<module>   sL                    K
þ