a
    "Df                     @   s^   d dl Z d dlZd dlZddlmZ ddlmZ ddlmZ dddZddd	Z	dd
dZ
dS )    N   )	centerize)gray2rgb)rgb2rgbac                 C   s   |\}}| d j \}}}|d u r$d}tj|| ||d   || ||d   |ftjd}	|d urj||	d< t|D ]r}
t|D ]d}||
|  }|t| k r~|
| |
|  }|| }|| ||  }|| }| | |	||||f< q~qr|	S )Nr   r   dtype.)shapenpzerosuint8rangelen)imgsr   borderborder_widthZy_numZx_numZtile_hZtile_wchanneldstyxiy1y2x1Zx2 r   X/nfs/NAS7/SABIOD/METHODE/ermites/ermites_venv/lib/python3.9/site-packages/imgviz/tile.py_tile   s.    r   c                 C   sR   t tt| | }d}|| | k r0|d7 }q|d | | krJ|d8 }q0||fS )Nr   r   )introundmathsqrt)numhw_ratioZr_numZc_numr   r   r   _get_tile_shape)   s    

r"   c                 C   s  t | } tdd | D jdd\}}|du rJtt| d| | d}nt|tjj	s\J t|dkslJ t|d t
s~J t|d	 t
sJ |d dk r|d	 dkrtt| |d	  |d	 f}n\|d	 dk r|d dkr|d tt| |d  f}n |d dkr |d	 dks$J | d|d |d	   } |du rJd}|durdtj|tjd
}|du rrd}tdd | D }|dkrtdd | D }nd}d}|dv sJ t|d |d	  D ]}	|	t| k rV| |	 }
|
jtjksJ |dkr|
jdkrt|
}
|dkr8|
jd dkr8t|
}
t|
|||f|d}
|
| |	< n"tj|||f|tjd
}
| |
 qt| |||dS )a  Tile images.

    Parameters
    ----------
    imgs: numpy.ndarray
        Image list which should be tiled.
    shape: tuple of int
        Tile shape.
    cval: array-like, optional
        Color to fill the background. Default is (0, 0, 0).
    border: array-like, optional
        Color for the border. If None, the border is not drawn.
    border_width: int
        Pixel size of the border.

    Returns
    -------
    dst: numpy.ndarray
        Tiled image.

    c                 S   s   g | ]}|j d d qS )N   )r   .0imgr   r   r   
<listcomp>R       ztile.<locals>.<listcomp>r   )ZaxisNg      ?)r!   r#   r   r      c                 s   s   | ]}|j V  qd S )N)ndimr$   r   r   r   	<genexpr>m   r(   ztile.<locals>.<genexpr>c                 s   s"   | ]}|j d kr|jd V  qdS )r)   r#   N)r*   r   r$   r   r   r   r+   o   r(   )r)      r,   )srcr   cval)r   r   r   r   )listr	   arraymaxr"   r   
isinstancecollectionsabcIterabler   r   ceilZasarrayr   r   r   r*   r   r   r   r   fullappendr   )r   r   r.   r   r   Zmax_hZmax_wr*   r   r   r&   r   r   r   tile3   sN        




r9   )NN)r   )NNNN)r3   r   numpyr	   r   colorr   r   r   r"   r9   r   r   r   r   <module>   s   

    