# image_cell_edges

<table class=".origin_table">
    <tr>
        <td style="text-align: left; border-style: hidden">*function*  of [dascore.viz._labels](`dascore.viz._labels`)</td>
        <td style="text-align: right; border-style: hidden">[source](https://github.com/DASDAE/dascore/blob/dev/dascore/viz/_labels.py#L126-L137)</td>
    </tr>
</table>

:::{.padded_bottom_10pt}

:::{.def_block}


<b>image_cell_edges</b>(<br>
    &nbsp;&nbsp;&nbsp;&nbsp;extents
,<br>
    &nbsp;&nbsp;&nbsp;&nbsp;dims_r: tuple[str, ...]
,<br>
    &nbsp;&nbsp;&nbsp;&nbsp;dim: str
,<br>
    &nbsp;&nbsp;&nbsp;&nbsp;size: int
,<br>
)


:::

:::
Where each cell of an image starts and ends, in axis units.

imshow lays its cells evenly across the extent it was handed, so the
edges are read back from that extent. Reading them from the
coordinate instead would put a line where the image has no edge
whenever the two disagree, which is exactly when imshow was chosen
over a mesh.

