{ "cells": [ { "cell_type": "markdown", "id": "7e60d8b4-f134-4bf2-be1b-6c8548e1e03b", "metadata": {}, "source": [ "# Zusammenf\u00fchren annotierter Labels\n", "In diesem Notebook zeigen wir, wie ein Label-Bild nachbearbeitet werden kann, indem Labels annotiert werden, die zusammengef\u00fchrt werden sollen." ] }, { "cell_type": "code", "execution_count": 1, "id": "142cfb4f-63b8-438c-a18f-348af9aa1ec0", "metadata": {}, "outputs": [], "source": [ "import apoc\n", "from skimage.io import imread, imshow, imsave\n", "import pyclesperanto_prototype as cle\n", "import numpy as np" ] }, { "cell_type": "markdown", "id": "a1367bd7-0786-4e28-ab01-9ac0c25e89ab", "metadata": {}, "source": [ "Unser Ausgangspunkt ist ein \u00fcbersegmentiertes (synthetisches) Label-Bild." ] }, { "cell_type": "code", "execution_count": 2, "id": "353b4667-5e12-4dae-b065-0a7c6054fb0b", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "cle._ image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(512, 512)
dtypeuint32
size1024.0 kB
min0.0
max49.0
\n", "\n", "
" ], "text/plain": [ "cl.OCLArray([[0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0],\n", " ...,\n", " [0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0]], dtype=uint32)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "oversegmented = cle.asarray(imread('../../data/syntetic_cells.tif')).astype(np.uint32)\n", "oversegmented" ] }, { "cell_type": "markdown", "id": "b01f1290-0b1b-4ae9-92a5-34cd2895a3c5", "metadata": {}, "source": [ "Au\u00dferdem ben\u00f6tigen wir eine Annotation, bei der Pixel-Intensit\u00e4t = 1 bedeutet, dass Labels zusammengef\u00fchrt werden sollen." ] }, { "cell_type": "code", "execution_count": 3, "id": "313b3b95-6d47-42d0-a60a-88e6604d3fd6", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "cle._ image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(512, 512)
dtypeuint8
size256.0 kB
min0.0
max1.0
\n", "\n", "
" ], "text/plain": [ "cl.OCLArray([[0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0],\n", " ...,\n", " [0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "annotation = cle.asarray(imread('../../data/syntetic_cells_merge_annotation.tif')).astype(np.uint32)\n", "\n", "# binarize the image\n", "annotation = annotation == 1\n", "\n", "annotation" ] }, { "cell_type": "markdown", "id": "f89af747-9899-43b8-a3e7-45a268291c07", "metadata": {}, "source": [ "Zu Visualisierungszwecken \u00fcberlagern wir beide." ] }, { "cell_type": "code", "execution_count": 4, "id": "29b68c7c-e3d7-400b-81d6-9e4e548763b3", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cle.imshow(oversegmented, labels=True, continue_drawing=True)\n", "cle.imshow(annotation, alpha=0.5)" ] }, { "cell_type": "markdown", "id": "ae8cb624-001f-4860-ba7d-c4cb7799f04e", "metadata": {}, "source": [ "Wir k\u00f6nnen nun alle Zellen zusammenf\u00fchren, deren Grenzen annotiert sind." ] }, { "cell_type": "code", "execution_count": 5, "id": "9b00c0a9-a560-45e9-940b-f0e890a333b5", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "cle._ image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(512, 512)
dtypeuint32
size1024.0 kB
min0.0
max18.0
\n", "\n", "
" ], "text/plain": [ "cl.OCLArray([[0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0],\n", " ...,\n", " [0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0]], dtype=uint32)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "result = cle.merge_annotated_touching_labels(oversegmented, annotation)\n", "result" ] }, { "cell_type": "markdown", "id": "c87b0a1f-968f-4ee4-b841-96db5d12985c", "metadata": {}, "source": [ "## Wie funktioniert es?\n", "Im Hintergrund gibt es eine Funktion zur Erzeugung einer Ber\u00fchrungsmatrix aus dem Label-Bild und der Annotation sowie eine Funktion zum Zusammenf\u00fchren von Labels gem\u00e4\u00df einer Ber\u00fchrungsmatrix." ] }, { "cell_type": "code", "execution_count": 6, "id": "a586307b-a833-43aa-81e1-e8bbd0d0dbd2", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "cle._ image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(50, 50)
dtypefloat32
size9.8 kB
min0.0
max1.0
\n", "\n", "
" ], "text/plain": [ "cl.OCLArray([[0., 0., 0., ..., 0., 0., 0.],\n", " [0., 0., 0., ..., 0., 0., 0.],\n", " [0., 0., 0., ..., 0., 0., 0.],\n", " ...,\n", " [0., 0., 0., ..., 0., 0., 0.],\n", " [0., 0., 0., ..., 0., 0., 0.],\n", " [0., 0., 0., ..., 0., 0., 0.]], dtype=float32)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "should_touch_matrix = cle.generate_should_touch_matrix(oversegmented, annotation)\n", "should_touch_matrix" ] }, { "cell_type": "code", "execution_count": 7, "id": "c50e4ba0-35bd-44ba-a08e-e4ace33e9119", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "cle._ image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(512, 512)
dtypeuint32
size1024.0 kB
min0.0
max18.0
\n", "\n", "
" ], "text/plain": [ "cl.OCLArray([[0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0],\n", " ...,\n", " [0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0],\n", " [0, 0, 0, ..., 0, 0, 0]], dtype=uint32)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "result = cle.merge_labels_according_to_touch_matrix(oversegmented, should_touch_matrix)\n", "result" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.15" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }