{ "cells": [ { "cell_type": "markdown", "id": "aca194ba-cf56-408a-ada4-1f3213741240", "metadata": {}, "source": [ "# Local maxima detection\n", "For detecting local maxima, pixels surrounded by pixels with lower intensity, we can use some functions in [scikit-image](https://scikit-image.org) and [clesperanto](https://github.com/clEsperanto/pyclesperanto_prototype).\n", "\n", "See also\n", "* [Finding local maxima (scikit-image tutorial)](https://scikit-image.org/docs/stable/auto_examples/segmentation/plot_peak_local_max.html)" ] }, { "cell_type": "code", "execution_count": 1, "id": "165bb00a-9faf-4a36-94ee-5e8fc694eb45", "metadata": {}, "outputs": [], "source": [ "from skimage.feature import peak_local_max\n", "import pyclesperanto_prototype as cle\n", "from skimage.io import imread, imshow\n", "from skimage.filters import gaussian \n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "id": "a7d3de85-b93b-4ff6-95f4-a2f8dbcb8c12", "metadata": {}, "source": [ "We start by loading an image and cropping a region for demonstration purposes. We used image set [BBBC007v1](https://bbbc.broadinstitute.org/BBBC007) image set version 1 (Jones et al., Proc. ICCV Workshop on Computer Vision for Biomedical Image Applications, 2005), available from the Broad Bioimage Benchmark Collection [Ljosa et al., Nature Methods, 2012]." ] }, { "cell_type": "code", "execution_count": 2, "id": "8ca305b4-047c-4a6d-b6ec-2ee8e43c89fa", "metadata": {}, "outputs": [ { "data": { "image/png": "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ZVX8FRGZMWNGZlmHR2O5Eiu9FILH0X08f/78zDpsI0rS+h7BUHC8dvp8FixYYLZxZGSkant1iRQRP3muVvgmRAghJBochAghhESjdHKcfr2r51WvqEwGjcqiHWtfFytFRjaGakdREW8hKcPzYWV4dlUiRTlUL2NWkDzyqF5GSQ3bYK13ZWbQbcRtsf36/LANrn4LURWgdIOQTslfC83wo17GwaKMbYqBT5oVUjx57ktey/Jx4sSJSeHkyJSkZL9G586dk0OHDkmSJLJ48WI5ePCgzJ49O3azSsv4+LgsWrSI/eSA/VQb7KfaYD/ZJEkiJ06ckN7eXneevga1qWY+8pGPyKWXXpomvpw9ezYvcg2wn2qD/VQb7KfaYD9Vx/UGNAEDEwghhESDgxAhhJBolHYQamlpkW984xteE8MuRthPtcF+qg32U22wn8JRusAEQgghFw+lfRMihBBy4cNBiBBCSDQ4CBFCCIkGByFCCCHR4CBECCEkGqUdhB5//HHp6+uTGTNmyMqVK+Xll1+O3aRoDA0NybXXXivt7e3S1dUln/nMZ2Tfvn2ZbZIkkYGBAent7ZXW1lZZu3at7N27N1KLy8HQ0JBMmTJF+vv707+xn87z1ltvye233y6dnZ3S1tYmV199tezatStdz346n+jz61//uvT19Ulra6ssXbpUHnzwwUyST/ZTAJIS8vzzzyeXXHJJ8tRTTyWvvfZasmHDhmTmzJnJgQMHYjctCr/zO7+TPP3008l///d/J7t3705uuummZPHixcm7776bbvPII48k7e3tyd///d8ne/bsST73uc8lCxcuTMbHxyO2PB6vvvpqctlllyUf+9jHkg0bNqR/Zz8lybFjx5IlS5YkX/ziF5P//M//TPbv35/8+7//e/Lzn/883Yb9lCQPPfRQ0tnZmfzTP/1Tsn///uTv/u7vklmzZiVbtmxJt2E/5aeUg9DHP/7x5O677878bfny5cmmTZsitahcjIyMJCKS7NixI0mSJDl37lzS09OTPPLII+k277//ftLR0ZF8+9vfjtXMaJw4cSJZtmxZsn379mTNmjXpIMR+Os/999+f3HDDDVXXs5/Oc9NNNyVf+tKXMn+7+eabk9tvvz1JEvZTKEonx505c0Z27dol69aty/x93bp1snPnzkitKhdjY2MiIjJv3jwREdm/f78MDw9n+qylpUXWrFlzUfbZPffcIzfddJN86lOfyvyd/XSel156SVatWiWf/exnpaurS6655hp56qmn0vXsp/PccMMN8t3vfldef/11ERH56U9/Kq+88op8+tOfFhH2UyhKl0X7yJEjcvbsWenu7s78vbu7W4aHhyO1qjwkSSIbN26UG264QVasWCEikvZLpT47cOBAw9sYk+eff15+8pOfyI9+9KNJ69hP5/nlL38pTzzxhGzcuFH++I//WF599VX5yle+Ii0tLXLHHXewn/6P+++/X8bGxmT58uUydepUOXv2rDz88MNyyy23iAjvp1CUbhCaACsSJkky6W8XI/fee6/87Gc/k1deeWXSuou9zw4ePCgbNmyQbdu2yYwZM6pud7H307lz52TVqlUyODgoIiLXXHON7N27V5544gm544470u0u9n564YUX5LnnnpOtW7fKlVdeKbt375b+/n7p7e2VO++8M93uYu+nvJROjps/f75MnTp10lvPyMjIpP9xXGx8+ctflpdeekm+//3vy6WXXpr+vaenR0Tkou+zXbt2ycjIiKxcuVKmTZsm06ZNkx07dsi3vvUtmTZtWtoXF3s/LVy4UD760Y9m/nbFFVfIG2+8ISK8nyb42te+Jps2bZLPf/7zctVVV8kXvvAF+epXvypDQ0Miwn4KRekGoenTp8vKlStl+/btmb9v375dVq9eHalVcUmSRO6991558cUX5Xvf+5709fVl1vf19UlPT0+mz86cOSM7duy4qPrsk5/8pOzZs0d2796d/lu1apXcdtttsnv3blm6dCn7SUSuv/76SSH+r7/+uixZskREeD9NcPLkyUlVQadOnZqGaLOfAhExKKIqEyHaf/VXf5W89tprSX9/fzJz5szkV7/6VeymReGP/uiPko6OjuQHP/hB8vbbb6f/Tp48mW7zyCOPJB0dHcmLL76Y7NmzJ7nlllsYKpokmei4JGE/Jcn58PVp06YlDz/8cPI///M/yd/8zd8kbW1tyXPPPZduw35KkjvvvDP5tV/7tTRE+8UXX0zmz5+f3Hfffek27Kf8lHIQSpIk+Yu/+ItkyZIlyfTp05Pf/M3fTMORL0ZEpOK/p59+Ot3m3LlzyTe+8Y2kp6cnaWlpST7xiU8ke/bsidfokoCDEPvpPP/4j/+YrFixImlpaUmWL1+ePPnkk5n17KckGR8fTzZs2JAsXrw4mTFjRrJ06dLkgQceSE6fPp1uw37KD+sJEUIIiUbpPCFCCCEXDxyECCGERIODECGEkGhwECKEEBINDkKEEEKiwUGIEEJINDgIEUIIiQYHIUIIIdHgIEQIISQaHIQIIYREg4MQIYSQaPwvB3wmhQwBJvUAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "image = imread(\"../../data/BBBC007_batch/A9 p7d.tif\")[-100:, 0:100]\n", "\n", "cle.imshow(image)" ] }, { "cell_type": "markdown", "id": "51a475c7-e1f1-4e05-8b5d-f4da1eb8db71", "metadata": {}, "source": [ "## Preprocessing\n", "A common preprocessing step before detecting maxima is blurring the image. This makes sense to avoid detecting maxima that are just intensity variations resulting from noise." ] }, { "cell_type": "code", "execution_count": 3, "id": "062fd9f7-0356-455a-938e-74c3ba1f79a4", "metadata": {}, "outputs": [ { "data": { "image/png": "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fxorVqzANddcgyeffDKvVz+d54YbbsB3vvMdvP766wCAH//4x3j55ZfxyU9+EoD6qVGULor2W2+9hbNnz6K7u7vw9+7ubgwPDydqVXnIsgxbt27FDTfcgDVr1gBA3i+V+uyNN96Y9jam5LnnnsOPfvQj/OAHP5hUp346z09/+lM88cQT2Lp1K37/938fr7zyCr70pS+hra0Nd9xxh/rp/7n//vsxOjqKq666CnPnzsXZs2fx8MMP45ZbbgGg8dQoSjcJXaBSVkH+22zk3nvvxU9+8hO8/PLLk+pme58dOXIEW7Zswe7du7FgwYKqx832fjp37hzWrVuHwcFBAMA111yDgwcP4oknnsAdd9yRHzfb++n555/Hs88+i127duHqq6/GgQMH0N/fj97eXtx55535cbO9n+qldOa45cuXY+7cuZNWPUePHp30H8ds44tf/CJefPFFfO9738Nll12W/72npwcAZn2f7d+/H0ePHsXatWsxb948zJs3D3v37sU3vvENzJs3L++L2d5Pl156KT74wQ8W/vaBD3wAb775JgCNpwt85StfwbZt2/DZz34WH/rQh/C5z30OX/7ylzE0NARA/dQoSjcJzZ8/H2vXrsWePXsKf9+zZw/Wr1+fqFVpybIM9957L1544QV897vfRV9fX6G+r68PPT09hT6bmJjA3r17Z1WfffzjH8err76KAwcO5D/r1q3DbbfdhgMHDuCKK65QPwG4/vrrJ7n4v/7667j88ssBaDxd4OTJk5Oygs6dOzd30VY/NYiEThFVueCi/Sd/8ifZa6+9lvX392cLFy7M/vu//zt105Lwe7/3e1lXV1f2/e9/P/vFL36R/5w8eTI/5pFHHsm6urqyF154IXv11VezW265Ra6iWVbwjssy9VOWnXdfnzdvXvbwww9n//Ef/5H92Z/9WdbR0ZE9++yz+THqpyy78847s1/5lV/JXbRfeOGFbPny5dl9992XH6N+qp9STkJZlmV//Md/nF1++eXZ/Pnzs1/91V/N3ZFnIwAq/jz11FP5MefOncu+9rWvZT09PVlbW1v2sY99LHv11VfTNbok8CSkfjrP3/zN32Rr1qzJ2trasquuuirbuXNnoV79lGVjY2PZli1bslWrVmULFizIrrjiiuyBBx7Izpw5kx+jfqof5RMSQgiRjNJpQkIIIWYPmoSEEEIkQ5OQEEKIZGgSEkIIkQxNQkIIIZKhSUgIIUQyNAkJIYRIhiYhIYQQydAkJIQQIhmahIQQQiRDk5AQQohk/B+WqxvfeXWElQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "preprocessed = gaussian(image, sigma=2, preserve_range=True)\n", "\n", "cle.imshow(preprocessed)" ] }, { "cell_type": "markdown", "id": "56b48b15-3693-4888-b74b-1647c4d590b3", "metadata": {}, "source": [ "## peak_local_max\n", "The [`peak_local_max` function](https://scikit-image.org/docs/stable/api/skimage.feature.html?highlight=peak_local_max#skimage.feature.peak_local_max) allows to detect maxima which have higher intensity than surrounding pixels and other maxima according to a define threshold." ] }, { "cell_type": "code", "execution_count": 4, "id": "b1d4996f-849d-4edb-85fa-d2eb45c49ef9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[23, 85],\n", " [11, 29],\n", " [41, 40],\n", " [88, 34],\n", " [72, 83],\n", " [69, 89],\n", " [31, 72],\n", " [75, 16],\n", " [80, 22],\n", " [ 6, 56]], dtype=int64)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "coordinates = peak_local_max(preprocessed, threshold_abs=5)\n", "coordinates" ] }, { "cell_type": "markdown", "id": "b242eefa-d1de-4af2-a7ed-098823b3518a", "metadata": {}, "source": [ "These coordinates can be visualized using matplotlib's plot function." ] }, { "cell_type": "code", "execution_count": 5, "id": "ea84c5f6-cdca-4235-a147-3635df21a425", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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dhC67777sHjxYkyZMgXnn38+nnrqqayblBmdnZ244IILMH36dLS2tuKjH/0o9u7dm9omSRJs2rQJHR0daGpqwsqVK7Fnz56MWpwPOjs7UVdXh3Xr1hW+Uz+d5MCBA7j22msxZ84cNDc34wMf+AB27dpVqFc/nYxF94UvfAGLFy9GU1MTzjrrLNxxxx2pmHXqpwqQ5JDHHnssOe2005IHH3wwef7555O1a9cmU6dOTV555ZWsm5YJH/7wh5OHHnoo+dWvfpXs3r07Wb16dbJw4cLk8OHDhW3uvvvuZPr06cnf/u3fJs8991zy8Y9/PJk/f37S19eXYcuz49lnn03OPPPM5P3vf3+ydu3awvfqpyR56623kkWLFiWf+tSnkh//+MfJvn37kn/+539OXnrppcI26qckufPOO5M5c+Yk3/nOd5J9+/Yl3/zmN5Np06YlW7duLWyjfiqfXA5CF154YXLjjTemvjvnnHOSDRs2ZNSifNHd3Z0ASHbu3JkkSZIMDQ0l7e3tyd13313Y5tixY0lLS0vyta99LatmZkZ/f3+yZMmSZMeOHcmKFSsKg5D66SS33XZbcskll4xYr346yerVq5NPf/rTqe+uuOKK5Nprr02SRP1UKXJnjhscHMSuXbuwatWq1PerVq3CM888k1Gr8kVvby8AYPbs2QCAffv2oaurK9VnjY2NWLFixYTss5tuugmrV6/Ghz70odT36qeTPPnkk1i2bBk+9rGPobW1Feeddx4efPDBQr366SSXXHIJvve97+GFF14AAPziF7/A008/jcsvvxyA+qlS5C6K9ptvvokTJ06gra0t9X1bWxu6uroyalV+SJIE69evxyWXXIKlS5cCQKFfivXZK6+8MuZtzJLHHnsMP/vZz/CTn/xkWJ366SQvv/wy7r//fqxfvx5/+qd/imeffRaf+9zn0NjYiOuuu0799C633XYbent7cc4556ChoQEnTpzAXXfdhauuugqAnqdKkbtB6BTFsgrydxORm2++Gb/85S/x9NNPD6ub6H22f/9+rF27Ftu3b8eUKVNG3G6i99PQ0BCWLVuGzZs3AwDOO+887NmzB/fffz+uu+66wnYTvZ8ef/xxPProo9i2bRvOPfdc7N69G+vWrUNHRweuv/76wnYTvZ/KJXfmuLlz56KhoWHYrKe7u3vYXxwTjc9+9rN48skn8YMf/ABnnHFG4fv29nYAmPB9tmvXLnR3d+P888/HpEmTMGnSJOzcuRNf+cpXMGnSpEJfTPR+mj9/Pt773vemvnvPe96DV199FYCep1N8/vOfx4YNG/CJT3wC73vf+/DJT34St9xyCzo7OwGonypF7gahyZMn4/zzz8eOHTtS3+/YsQPLly/PqFXZkiQJbr75ZjzxxBP4/ve/j8WLF6fqFy9ejPb29lSfDQ4OYufOnROqzy699FI899xz2L17d+HfsmXLcM0112D37t0466yz1E8ALr744mEu/i+88AIWLVoEQM/TKY4ePTosK2hDQ0PBRVv9VCEydIoYkVMu2t/4xjeS559/Plm3bl0yderU5D/+4z+yblomfOYzn0laWlqSH/7wh8nrr79e+Hf06NHCNnfffXfS0tKSPPHEE8lzzz2XXHXVVXIVTZKUd1ySqJ+S5KT7+qRJk5K77rorefHFF5O/+qu/Spqbm5NHH320sI36KUmuv/765PTTTy+4aD/xxBPJ3Llzk1tvvbWwjfqpfHI5CCVJkvzFX/xFsmjRomTy5MnJ7/7u7xbckSciAIr+e+ihhwrbDA0NJV/60peS9vb2pLGxMfngBz+YPPfcc9k1OifwIKR+Osm3v/3tZOnSpUljY2NyzjnnJA888ECqXv2UJH19fcnatWuThQsXJlOmTEnOOuus5Pbbb0+OHz9e2Eb9VD7KJySEECIzcqcJCSGEmDhoEBJCCJEZGoSEEEJkhgYhIYQQmaFBSAghRGZoEBJCCJEZGoSEEEJkhgYhIYQQmaFBSAghRGZoEBJCCJEZGoSEEEJkxv8HYYc2hBeBqwEAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cle.imshow(preprocessed, continue_drawing=True)\n", "plt.plot(coordinates[:, 1], coordinates[:, 0], 'r.')" ] }, { "cell_type": "markdown", "id": "01e90770-4298-44d2-b9c1-aeceef3fa70a", "metadata": {}, "source": [ "If there are too many maxima detected, one can modify the results by changing the `sigma` parameter of the Gaussian blur above or by changing the threshold passed to the `peak_local_max` function." ] }, { "cell_type": "markdown", "id": "2ce6054b-e698-466a-8130-b6571c3355df", "metadata": {}, "source": [ "## detect_maxima_box\n", "\n", "The function `peak_local_max` tends to take long time, e.g. when processing large 3D image data. Thus, an alternaive shall be introduced: clesperanto's `detect_maxima_box` is an image filter that sets pixels to value `1` in case surrounding pixels have lower intensity. It typically performs fast also on large 3D image data." ] }, { "cell_type": "code", "execution_count": 6, "id": "0d14f240-a000-4fea-85fe-a182d12eea70", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "cle._ image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(100, 100)
dtypeuint8
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=uint8)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "local_maxima_image = cle.detect_maxima_box(preprocessed)\n", "local_maxima_image" ] }, { "cell_type": "markdown", "id": "6ee8d05d-5f82-4b16-a580-f0d6e4c0ce74", "metadata": {}, "source": [ "Obviously, it results in a binary image. This binary image can be converted to a label image by labeling individual spots with different numbers. From this label image, we can remove maxima detected at image borders, which might be useful in this case." ] }, { "cell_type": "code", "execution_count": 7, "id": "93c563bf-a5e4-44dd-b3c2-6a23e8655f31", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "cle._ image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(100, 100)
dtypeuint32
size39.1 kB
min0.0
max11.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": [ "all_labeled_spots = cle.label_spots(local_maxima_image)\n", "\n", "labeled_spots = cle.exclude_labels_on_edges(all_labeled_spots)\n", "labeled_spots" ] }, { "cell_type": "markdown", "id": "ae1375d2-3e1c-4176-892c-ca211d9334e1", "metadata": {}, "source": [ "To visualize these spots on the original image, it might make sense to increase the size of the spots - just for visualization purposes." ] }, { "cell_type": "code", "execution_count": 8, "id": "4d467d35-1755-4af0-a9c7-d60cbc525738", "metadata": {}, "outputs": [ { "data": { "image/png": "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ue++++TRRx+Viy66SO666y658sor5fDhw9LV1VW4wjHX+wuFpalYYQdidmxLU2lxlI1h2bFjrnjme16RvP3csqWL2O5PYjbwcBltTKey0NpAtXZuaCxioUCs/qU1Rqsfx/qa513yuCGylmxbYcJ1eiGWZGtcg9A3v/lN+dVf/VW56qqrRETkne98p/zxH/+xfOtb3ypX8P7775c77rhDrr76ahEReeyxx6Snp0d27dolN91006xzTkxM5ETAsbGxqm8GAACaC5c5bsOGDfL1r39dXnnllMPL73znO/L888/LRz7yEREROXLkiIyMjMjmzZvLx5RKJdm4caPs27dvznMODw9Ld3d3+W/VqlXV3gsAADQZrpnQ7bffLseOHZOLL75YWltbZXp6Wu6++2655pprRERkZGRERER6enpyx/X09Mirr7465zl37Ngh27ZtK6fHxsYYiAAAlgiuQejJJ5+Uxx9/XHbt2iWXXHKJHDhwQAYHB6Wvr09uvPHGcrm5dI9KttJSqSSlUqmKqvuJ2TMt+79lK43Zm639OzHX72H5Voc9tsieFssdkEjerq3Lant5uMdC28Mtl/ixfUKWe/2YXd4TRtyyw1vnhfrjCc2un53lyknnx8J7e9xlWXmxPTqW2x7LrVVME9ILy0K86WpwDUKf//znZfv27fKJT3xCRETe8573yKuvvirDw8Ny4403Sm9vr4icmhGdd9555eNGR0dnzY4AAABcmtCJEyfmXP309kja398vvb29smfPnnL+5OSk7N27V9avX1+D6gIAwGLCNRP6lV/5Fbn77rvlggsukEsuuUS+/e1vy3333Sef/vSnReTU9HJwcFCGhoZkYGBABgYGZGhoSDo7O+Xaa6+tyw14KGJ6sdJ6equn61akTz2omyYGdR5raXXsXq0puMYyuek6aDNZuHRa5+m05dJEmx8s90cxU2ponoiZKlJtAYD64nGRE/OabZnbLVN97N233O14XPHElqN7zNP1wDUIfeUrX5Hf/u3fli1btsjo6Kj09fXJTTfdJL/zO79TLnPbbbfJyZMnZcuWLfLGG2/I5ZdfLrt3767JHiEAAFhctGQNpqaOjY1Jd3f3vMt7HGbG/msP0+3t7bk8ne7o6Kh4Hh1/xLNh01yYsObnXMeGWP+RzRI1v/v9XNoS5FPNhPR/guGGwhMn8nGXdPr48ePl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t37rt+SFF16Qz372s1IqleSGG26gnf6d22+/XY4dOyYXX3yxtLa2yvT0tNx9991yzTXXiAj9qVY03CD0NjpyYJZl7kiEi5Fbb71Vvvvd78rzzz8/K2+pt9nRo0dl69atsnv3bmlvb69Ybqm308zMjKxbt06GhoZEROTSSy+VQ4cOyYMPPig33HBDudxSb6cnn3xSHn/8cdm1a5dccsklcuDAARkcHJS+vj658cYby+WWejsVpeHMceeee660trbOmvWMjo7O+o9jqfGZz3xGnn76afnGN74h559/fvn73t5eEZEl32b79++X0dFRWbt2rbS1tUlbW5vs3btXvvzlL0tbW1u5LZZ6O5133nny7ne/O/fdu971LnnttddEhP70Np///Odl+/bt8olPfELe8573yCc/+Un53Oc+J8PDwyJCO9WKhhuEli9fLmvXrpU9e/bkvt+zZ4+sX78+Ua3SkmWZ3HrrrfLUU0/JM888I/39/bn8/v5+6e3tzbXZ5OSk7N27d0m12Yc+9CE5ePCgHDhwoPy3bt06ue666+TAgQOyevVq2klErrjiillL/F955RW58MILRYT+9DYnTpyYFRW0tbW1vESbdqoRCRdFVOTtJdp/8Ad/kL388svZ4OBgtmLFiuyf//mfU1ctCb/xG7+RdXd3Z88++2z24x//uPx34sSJcpl77rkn6+7uzp566qns4MGD2TXXXMNS0SzLrY7LMtopy04tX29ra8vuvvvu7Pvf/372R3/0R1lnZ2f2+OOPl8vQTll24403Zj/7sz9bXqL91FNPZeeee2522223lcvQTsVpyEEoy7Lsq1/9anbhhRdmy5cvz97//veXlyMvRURkzr9HHnmkXGZmZib74he/mPX29malUin74Ac/mB08eDBdpRsEPQjRTqf4i7/4i2zNmjVZqVTKLr744uyhhx7K5dNOWTY2NpZt3bo1u+CCC7L29vZs9erV2R133JFNTEyUy9BOxSGeEAAAJKPhNCEAAFg6MAgBAEAyGIQAACAZDEIAAJAMBiEAAEgGgxAAACSDQQgAAJLBIAQAAMlgEAIAgGQwCAEAQDIYhAAAIBn/HzUu87N+m20aAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "label_visualization = cle.dilate_labels(labeled_spots, radius=3)\n", "\n", "cle.imshow(preprocessed, continue_drawing=True)\n", "cle.imshow(label_visualization, labels=True, alpha=0.5)" ] }, { "cell_type": "markdown", "id": "617b01a6-6e18-4e4b-b987-188244da9e5d", "metadata": {}, "source": [ "In the lower center of this image we see now a local maximum that has been detected in the background. We can remove those maxima in lower intensity regions by thresholding." ] }, { "cell_type": "code", "execution_count": 9, "id": "32b8259d-65ca-4db6-9c88-41acc86f86e8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "cle._ image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(100, 100)
dtypeuint8
size9.8 kB
min0.0
max1.0
\n", "\n", "
" ], "text/plain": [ "cl.OCLArray([[0, 0, 0, ..., 1, 1, 1],\n", " [0, 0, 0, ..., 1, 1, 1],\n", " [1, 1, 0, ..., 1, 1, 1],\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": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "binary_image = cle.threshold_otsu(preprocessed)\n", "binary_image" ] }, { "cell_type": "markdown", "id": "07c99657-4469-4121-8006-d5dd0283abcd", "metadata": {}, "source": [ "We can now exclude labels from the spots image where the intensity in the binary image is not within range `[0..1]`." ] }, { "cell_type": "code", "execution_count": 10, "id": "84b41b81-4fd0-4108-adc6-4fa07311f783", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
\n", "\n", "\n", "cle._ image
\n", "\n", "\n", "\n", "\n", "\n", "
shape(100, 100)
dtypeuint32
size39.1 kB
min0.0
max10.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": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "final_spots = cle.exclude_labels_with_map_values_out_of_range(\n", " binary_image,\n", " labeled_spots,\n", " minimum_value_range=1,\n", " maximum_value_range=1\n", ")\n", "final_spots" ] }, { "cell_type": "markdown", "id": "72b2ed50-ec31-4192-841a-6360c1aeefe3", "metadata": {}, "source": [ "We can then visualize the spots again using the strategy introduced above, but this time on the original image." ] }, { "cell_type": "code", "execution_count": 11, "id": "9137b5c1-f725-4b08-9b15-57caf85b3ede", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaEAAAGgCAYAAAAD9NhnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABDKUlEQVR4nO2df3Bd5XnnH1myrn5Ylh2DJavYjjwrr4NNimsDE+ONnSW403g7zTCTH/wI0MzuQA2JFe/G2HVaVMZIhO143aTBidkOkCEubCd0SrtpYicBL8RpARODYxqTBBecEKGSGEmWZMmSzv7hcvSc79V9Xr069+q9V/p+ZjRzzz2/3vOec+6r9/t93+cpi6IoEkIIISQAs0IXgBBCyMyFjRAhhJBgsBEihBASDDZChBBCgsFGiBBCSDDYCBFCCAkGGyFCCCHBYCNECCEkGGyECCGEBIONECGEkGAUrBF64IEHpLm5WaqqqmTNmjXyzDPPFOpUhBBCSpSKQhz08ccfl9bWVnnggQfk6quvlq997Wvye7/3e/LKK6/IkiVLzH1HR0flzTfflLq6OikrKytE8QghhBSQKIqkt7dXmpqaZNYsR18nKgBXXnlldPvttye+W7FiRbRjxw7nvqdPn45EhH/84x//+Ffif6dPn3b+5ue9JzQ0NCRHjx6VHTt2JL7ftGmTHDlyJGv7wcFBGRwcjJejfw/qXVFREfeEIhXoO3IE/bbWj46Oui9gBoL/qWAP1FrGfcvLy3OeB4+D90rfH1w3MjJi7quX8T5jGYv9OcDyWvensrIysQ6XkfPnz8efsR5weXh4OP5s1fd4+5Ya1n/r+NxWVCR/NvUzj+tqa2sTy/PmzYs/z5492ywTvkv62HgeRJfZKq8L/byIZL+Hev3AwEBiu5/85CdSV1fnPEfeG6G3335bRkZGpKGhIfF9Q0ODdHZ2Zm3f0dEhf/Znf5b1fVlZWd7lONfxXA1csTPZ+vJpdHDZta1P+dLsa23rU0Yf8HlxNbITLUOa+ndJHz73Lk2dW4R4z/L57KW5H7oBcDUGxdAI+Tzj4x13Is9FQTyh8U4eRdG4Bdq5c6ds27YtXu7p6ZHFixfLnDlz4u116+v6701vi602nt+1HstfbPi8+NZ/066XDP9j08uunpD1wFv3UveOxysD/oem/2t3/RDr9T7/wReq0cEyuepU10V1dXViHS4jul6xDoeGhszzanR94zK+V4hPvaXB5/1w9Z6tbfV5cJ3Vk8BnGstrHQvrOJPJJJZ96lRfK5YXGzBLkdDl9Xmv8t4IXXTRRVJeXp7V6+nq6srqHYlcqDysQEIIITODvA/RrqyslDVr1sihQ4cS3x86dEjWrVuX79MRQggpYQoix23btk0+9alPydq1a+UDH/iA7N+/X9544w25/fbbJ3yM+fPnx91E3bVDGQAlBG2O4bbYRSw1czWN/IbSil6Px8WeqWV+o/yD59XdedcAAX0v9X0UyZbnEH0Nrvtuldfa1ldGsu6XJY+iBGLdjzlz5iTWueQ4LQGdPXvWLK81IMiSjnzfK32sfEpzaeRRn+Nqicr1PFnPMcpzeB7LB0IZzTXoQWPZHdZABJHkO2tZIRYFaYQ+8YlPyK9//Wu555575Fe/+pWsWrVKvvWtb8nSpUsLcTpCCCElSsEGJmzZskW2bNlSqMMTQgiZBjB2HCGEkGAUrCeUlrq6utjHsCbYof6vvY++vr7EOtQzC+kHhMDyeVAj1tviOpxgVlVVlViuqamJP6Nf5PKXNOj76GPhOXt7exPLVv3jfUXf0PI60jwTadDnRe0f6+LP/8tF8ef6+vrEOvSE8JnX78T2b03cr3Bp/Gk8IU0xzuVzTdS1hvxbvqfl04rYvpvPc4rbYvn1M+LyU62h+ZMdos2eECGEkGCwESKEEBIMNkKEEEKCUbSeUGVlZayNa50btWnUsbX+iX4EzotAtFbqM869kEw2fpcrCKb2X9BXmD9/fmIZPQm9L3pC6C/p9ejNWD4b+kWoRaPXoTVoV+gR6z6H8vq0P4B1+j83L0gs6/tTPy9573Df0ZHcIWbu/0iyDDu+/U7O8rk0fmuOiCsYrbVtvkjj3/kExHXNqzl37lz8GZ9LfHfwmdfHxnqyPF8XVtgh17whXUbLu7dgT4gQQkgw2AgRQggJRtHKcbNmzYq7lFqqcA1jtHJ7uIZE6mWUg4pFnrPQdYHdc7x2PQx74cKFiXWNjY2JZcyJoof5Yh3q4dsiIv39/eOWTyRbLtV1jDIrSoKIPjbKfrhsRQ22himnGXqM9W89t3itWP81tbmHyON9HxxJXo+VDgCPpe+HVV48liXZuCjUEG1X2CFkssPK8Tz4PPmUH++lLpMrHYMlsbmGnFvr8H3B5cnAnhAhhJBgsBEihBASDDZChBBCglG0ntDs2bNjndnKOmkto6aKIU1Qe9fLb731VmKdlYW1GIb1Iqh5Wz4DDsm++OKLzfNqndul/1vaOnoSluaN5beGgmsfSiTb39OgX2SF3nelbrau1eVJ6Ot1Dbe19H4MVTUynLw/1vuBHp017N3y8/CZcIWNyZf/kgZfz8ja11qHz5sFeoH6GbfCAYkky581bB/21c+e617gev0M+Xh/GvaECCGEBIONECGEkGCwESKEEBKMovWEampqYr1R65s47t6aD4NatCtFtPYOXOPwC4VPSmgr/S/qwJYn5ErRjVqv9gPQ1/HRhfHeWSmudbgTV5lcXqD2NzBFBPoZehnPmcYjsnB5HdrnQf9raDB32gpXmaxnHuvUCo3kCkdjhcFx1Zm+njTpVdL4ST5pE6x9rbQIItn31id9tl7vSmGjl10hlvAZycf8SfaECCGEBIONECGEkGCwESKEEBKMovWE6urqYi3ZSh2MOqrWn11xjXz08UJooePhM18BtV1dRiwvxnTTHgp6JsjCD92aWNZ1PmLMqxERqTo35rP1HHnMPI/2sVz+C9a/vpfoQSA9PT0512H9ay/K5XflK421K22F9grwGbBSXIjYnqmFlQoEz+vyylz30sKaJ5TGI8pXqnbXM6DrAq8bfU+rXlzz2/T7jeusmIGuVA64rO+7Li9TORBCCCkJ2AgRQggJRtHKceXl5eMOGbVCi4y3bK2z5Cwf0sgArmNNFlcaCz1kG6UVlN9mlYOcMkuVccgO5zI6OtZFr/vAJxLren/4eGJZ15trOLqVSsAVql6X0RWORpfDdZ/ThPGxtr37qWTYoXv+8+RDyugytj2dlH+wDD5SsM8QbazzyWY0zud7Z0l7aUL6+JzTkroQrFMczq0lXTwuSvPW9bjSonCINiGEkJKGjRAhhJBgsBEihBASjKL1hAYHB2MtEzVmjaVnujwgayipKx2zJs1Q0XzpyyJ2+dHrwGVNVr2BJ1Q5e8xDwuNg2JiRkTFtGodv47Xr++waXu9zPxB9fS5fUGvvPkNofbHC6aMOv/M7Y3XjSuOeXce5fTcrhYRP6gB8Jlz3XS/nK/RRPsnnO2rh8ogsn8dK4e0KxWNNPcD77PJBJwN7QoQQQoLBRogQQkgw2AgRQggJRtF6QiMjI7HeaKUoQO9Aa5gu/RL1Tq2Nuvwja12akPI++rO1Leq+eK3a38A6xOOiV6CXZ5XZnoo+L+rWOLdhzpw58WfXvCDLj0GN2wo546N55zN1gxV+yuU16fr39Sv0u2TNtUKwnnBffC+t47rmgE0Frnd2Knxc33ffZ86alcrBZ/6Xq0y57ruPX8qeECGEkGCwESKEEBKMopXjhoeH466g7hK6hhfqbVEewSG2PiF+0kTkLZTcYEkIKJ+cPXs2sWzJJ7Vv/1tieVHjosRyVWYs5A/KMlim2ZW5I1pbEatxWK8rgrUVOdsaToz3ypKo8Bw+koNruoAuo0tytu6dlW0XcQ1P1/fAJVdZke7ThNbyoRjDZ1lDmF3SlxVGzLWtTwgy/RxbWVfHO64lEU4U9oQIIYQEg40QIYSQYLARIoQQEoyi9YR0KgetTVuhLETsIcGuIdt6fRpPKJ/+keVx4b66LnAdDoe20hlUv/lmcrk6Gfq9umYsEyuWd+BcMu0A+jEaq47Ry3ANu9bnwWu3Qs64QtPrfQuVTVckee3oh1l6P4bIwXrzSQ9gZWXFdZY3OzCQfAZc++bLM/UZVp1maoRPqBorRJHLx7HCKqEviPfdelYtnwd9T5f3lCtUmFfW3glvSQghhOQZNkKEEEKCwUaIEEJIMIrWExoaGop1W63fojeAc38s/8g1x8gKZVMoXHq4Xu/SrfX1oHaL9XTmzJn4M6b7ff3/7kssZ65rTSwndGDQfvvBD+jufif+/Itv70+sQ+9DHxe9Dqwny2tyoc9reUAiyTrF5yXNnBbL38Nrs8IOubR3K9QQXg/WsX4HfPww13uWpt583gefUFs+WHO+XKGdrPlsrnQr+r5bc8VEkvfAde+s8ruWc82jc83rS5x/wlsSQggheYaNECGEkGAUrRynu3PW8FuUzfTwUFeXEOUgvewTTTZEFGCR7G62luB85CqXPHLym/8rsfzWvHnxZx35WiT7flhDd61wOhhmCLEkBtdQVys8EJZJX08h77O+Hit8johIT09P/NkV3RqlVmsYLd47PK+FLn9fX595nEKF0ylUBlSX5GnJWdZQapTm6urqEssox+l75wrLo+8l3ldXhHqNK2xPruHdXkPeJ7wlIYQQkmfYCBFCCAkGGyFCCCHBKFpP6Pz587F2qT0L1MCtsCsuvR/1Wit8BQ5x9kHro756uI+2avkKVj35hlHRZULfDcOHWCFycF9dDtw2zbBeyxNKM+TfFfrFZzixxnU/tLeGej/WP16Ppf9bKRhcw3x1OXzvVZp7O1l8hra7wn1ZvxtVVVWJ5erqsZBX+PvjCsGk1+N9dKUK0eAz4zNE20KXweeesidECCEkGGyECCGEBIONECGEkGAUrSeksVIUIFoDx/QFLj/JSo+dZm5Dvvb10Wdd6ZitMrm21T6JK/W01ptxW+v+oFdj6dgiSY3c5d1Y3pMrtYMmTTppn1QClt6P9eRKeeHjCVlYdRxq3pyFz7w/XO8KvaO9Gnz+cR6d9ojwOFZ4JpGkR4Tb+qSesZ5bV2p2K02KT6ggDXtChBBCgsFGiBBCSDDYCBFCCAlG0XpCIyMjsf7o44toTR9jWKGvYMUYw/kVhUztPFHS+AiIvlZXOgPLE0IPBec6aA0ct7XSQLvKZKVmd3kS1pwWlyZubWvhk7IDcaUr98Fn33zFS3RtO9l02T7z2VzrrBQM1nwdkeTcH4z/ptfhvnhc17IG3w8rDbePr+PyOfFYeln7kfSECCGElARshAghhASjaOU4je4SoqRmDam1smSOt5zrOK4yhcJHnkN8ZBnrWl3Dri1ckttEy+DCGnKer3ooJGnus/Uc+8hgaUIU+ZR3qrZ1DV3XUhhKalYontra2sS6eSrtCe6LZcLj4r3Tv3UYkgzfQ72v67n1CbeDw8Z1OXSdUY4jhBBSErARIoQQEgyvRqijo0OuuOIKqaurk4ULF8pHP/pROXnyZGKbKIqkra1NmpqapLq6WjZu3CgnTpzIa6EJIYRMD7w8ocOHD8sdd9whV1xxhQwPD8uuXbtk06ZN8sorr8Ra6P333y979uyRhx9+WJYvXy67d++Wa6+9Vk6ePJk1fNFCp3LQ3g0One7t7U0s62G/PiFYXBSDB+RisiF+8jnkF7VpvR51d6tOQ4T3F0nnv0wVPsO5C3Uen/P6DIdOg89xcVscDq39GUyRjt6NHnaNHtDK/7Yy57auNPT4Lv30kZ/Gn9ETssIxWcOq8Tyu9w5/Q/X1WFMsLLwaoW9/+9uJ5YceekgWLlwoR48elQ9+8IMSRZHs3btXdu3aJdddd52IiDzyyCPS0NAgBw4ckNtuuy3rmIODg4kK7enp8SkSIYSQEibVvyDd3d0iIvKe97xHREROnTolnZ2dsmnTpnibTCYjGzZskCNHjox7jI6ODqmvr4//Fi9enKZIhBBCSohJN0JRFMm2bdtk/fr1smrVKhER6ezsFBGRhoaGxLYNDQ3xOmTnzp3S3d0d/50+fXqyRSKEEFJiTHqe0J133ikvv/yyPPvss1nrxptDkEszzmQyWWEwRC54O+/qnFpfxFA8OC8FdVQfSsH3mSj59Dby5c8UMvRRoe5dqT0ThQrt5PP8oLfhSqNghafxST1hldFVBkyroFMwoAdkbbv81uWJdfPnz08s45yjBPCoDZxLhrVaev3S+PPPvv6zxDor1YkrLYpe75vCXu+r72PB03t/5jOfkSeffFKeeuopueSSS+LvGxsbRUSyej1dXV1ZvSNCCCHEqxGKokjuvPNOeeKJJ+T73/++NDc3J9Y3NzdLY2OjHDp0KP5uaGhIDh8+LOvWrctPiQkhhEwbvOS4O+64Qw4cOCB/93d/J3V1dXGPp76+Xqqrq6WsrExaW1ulvb1dWlpapKWlRdrb26WmpkZuuOEGr4L19fXFXUrdtcPRczhUUS+niVw83SjUsF6fcC4u8hUhmUw9Wv5BCc0KieO7r08GXeucCIajsYZoo30wd+7c+DPKb7hv5eyx82CZRkaTcnV5RfLatZyNx8WpKz4R0PVxXXaG9b7r++gjx3k1Qvv27RMRkY0bNya+f+ihh+TWW28VEZHt27fLwMCAbNmyRc6cOSNXXXWVHDx40GuOECGEkJmBVyM0kf9qy8rKpK2tTdra2iZbJkIIITMExo4jhBASjKJN5dDT0zOuJ2Rl4xSZfJj+6YaPN+PrjU3Wj3GVKZ/ZOskFChWGyMrkiV4HDmlGT0X7Ma5QNvqddg279gljhZ6Q9lzQf8Hliy66KP5cW5NM5WANV49gTPbsimQ9Ifq8mDICvXEdsgzvhxVGCZ8XnykviWvzeD/ZEyKEEBIMNkKEEEKCwUaIEEJIMIrWE+rt7Y21Ssvnmcm+j0UhPZPJ+kv0caYP1twf9Hyy5sqA/+LjCVlzUXy2RdC30uF1LA9LJBm2pzKTXBeNwpwcPRcIoliNzIIv4HXR1+Oa95Rr/o5Idvm1z46htXDZqkefeX4a9oQIIYQEg40QIYSQYBStHHf+/PnUw0kp/xAyefT7h/IPLmuJB+UrLVeJZEtuWgpzyUxWiB9rODdGknZF0dZhe6ysqyJ22JuK8uS+w+dzR6weHkmWEeW4waGxYdiurNHW8HT8XbTq3DfTaq5zWLAnRAghJBhshAghhASDjRAhhJBgFK0npPHRN8n0gPc5P+QzI6rG8nVcqQ/Qf/HxhKzjWLjCz2A9+Uz90NmdX3v0tcS65huTOdf0c4y+jpXxVETkF//nFznLZw1Xx/uI987nWrHMGn1t9IQIIYSUBGyECCGEBIONECGEkGCUhCdkQe9gesL7WHhcqRA0rhTdehnDwlhzcPC8uC2WSZ+nkO++FSoMU2nr9Vj+U984lVjWdY5zbLS3JHIhnU0usEzoJ1keGJ5X+zy4nzX/CJcnO6+TPSFCCCHBYCNECCEkGGyECCGEBKPkPCF6BaUL/bvwWOkN0PfR4L2z0gO4PCFrLhCep3VRE5w3dzw7fJ70PJu/6OxMrHOlKNB14ROjDv0iLKM+L56zr6/PLJOuG5cHpJdxvpHl++A5c8WGy7X9u3CeECGEkJKAjRAhhJBgFLUcR7lmeuG6nz6ZGSntjY9rmKyWT6ywPLgej4sSlSXlueQsfewtCy7KWV4Rkdmzx6Q+vOezZiXPU1Y2tu+dFy9MrPvSW0l5zqoLV8gfXQ48DspZWnJDmQzBerPej8HBwcSyrjcsvxUuCLedikzW7AkRQggJBhshQgghwWAjRAghJBhF7QmRmYtvCJC0qeDfpdS9JSy/VS/5qjPf41q+Au6Kxzqv0mPr4dqu87ou1drXNWxZr+/t7TXPY/lALo9OD/fG4+DQcL1+YGAgsQ6X9bZpnv/J7sueECGEkGCwESKEEBIMNkKEEEKCQU+ITBn59CBc+rmmEHMbihWfOk6j/1vnwePi3BMMZWPNMcouo06xMMvcVns3ZWXJbbEMVmoEPC7Os7FSUVgpL1xeEz7j2svBeUF4P/SxLL9IZPJpuRGfeX4a9oQIIYQEg40QIYSQYFCOIwVlshKcJWOI2KFfXHKQFRnYku5Kffi2i3xJea5snJbsVFGRlLMQPSwbJTYsfzLqdFJCQ0kKy2SF6sF9ddRwV9Rpn3pDyc0aSm3J06761/IibuuSsvPxTrAnRAghJBhshAghhASDjRAhhJBg0BMiwUAdWy9nMpnEujlz5iSWcVivlR0StXU91NWVXVRr3rhtPlNThACvx8oYili+AmZWdaUD0MdyeR2jo2PrcWT38HBuL0rvh+Udr0zWEG1ryDZ6l5a3hB4WlslnKDVuq4+F98ry7KbCA0LYEyKEEBIMNkKEEEKCwUaIEEJIMOgJESf5CrfjSvOsQ57U1NQk1qEnZPkK6AFZHgUex0objsd1zYeZCh/Ilea8UCku8Nq1J4H+BPoiGNpGH/uBX7+dWPeZhcm03PpeuupX+yJ/+W9diXUu31Bfg2vuj36OXc+4zxw1n7QPVmoH9Jpc16OZimeYPSFCCCHBYCNECCEkGJTjSBZpJByUI/SQVZdUoaUWlNBc56mqqhr3s0i2HGSFWbGiESMueU7jkskmK3sUUi7Rx0a5B4ci62vH+naFyNHPAW77lbffzrktynqIvj8u+coqs+sZse6BjzzqCi+ln3l8PzBStp6G4LofPs9Qvp5bDXtChBBCgsFGiBBCSDDYCBFCCAkGPSHijdbXUWtHr0br9qhjW9ui54BhfKzsnKilW8eywqqI2ENdcdkKe5PPrLI+pBmybYVzscL24H11eYE+22q/D++dFXIJscovYntCVmgbV9gbXWa8F9aQbJHk+6M9n/H21dfj8oB8Mg8zbA8hhJBpBRshQgghwWAjRAghJBhF7Qm9q5kWYxj8UsfHG7Dm/ri8GysUj5WOwTrneMfSerkVlh+PjfMrcFtdTz7hgPBYrhA/xYCV2sGVOkCD9wr9CwsrRTeWCZ8RvD+6/vv6+sxtrXlDrnlOehm3tfwWVyoHxFqPz61V/mJ79tgTIoQQEgw2QoQQQoLBRogQQkgwitoTImFw+TF6rgaumzt3bs5joZaOsb+seUJYJvRjrln5hbEFsLuy5o+oVM9n3jmTWPeDn/15zn1dIfDRX9Lbu+KPWYTS8K15TugzaK/G5W34xBe0yoRgGfX9QA8Iy4jr8V5OdJ3rGfGZk4PH0j6PK9W8la4ECe0RsSdECCEkGGyECCGEBKMk5DjdzQ7ddZyOYGgUK1TKeMsWWmJD+c0azu1KHfCBZdsSy/X19fHn8gqQ7mYnpTtrePFVS1sTyz/4+Zg8V1dXl3M/ETszpk/oFySf4fOtfS2J0BX+R1+fNaxaJFv60hKca99c5xSxh8j39/cn1rnkOCs1hTXc3pWBVpfR9z5a50Gs56vYfkPZEyKEEBIMNkKEEEKCkaoR6ujokLKyMmltbY2/i6JI2trapKmpSaqrq2Xjxo1y4sSJtOUkhBAyDZm0J/T888/L/v375f3vf3/i+/vvv1/27NkjDz/8sCxfvlx2794t1157rZw8edKpqWvKy8tjfdg17JFkkyYsD96n6urqxLLlCVmh+HFYtZWeAddlDdEGn6ds1tj1VlUly4vn1V5N7ZzaxDocsu0zfBi9JvQZJksxaPjoMfikIXA9i6561VhpRKw01hg6yJWWQ//muNJYWD6PT+pvFz4+YprzTDWT6gmdPXtWbrzxRnnwwQdl/vz58fdRFMnevXtl165dct1118mqVavkkUcekf7+fjlw4MC4xxocHJSenp7EHyGEkJnBpBqhO+64QzZv3iwf/vCHE9+fOnVKOjs7ZdOmTfF3mUxGNmzYIEeOHBn3WB0dHVJfXx//LV68eDJFIoQQUoJ4N0KPPfaYvPjii9LR0ZG1rrOzU0REGhoaEt83NDTE65CdO3dKd3d3/Hf69GnfIhFCCClRvDyh06dPy9atW+XgwYOmLzDevIZcunAmk8nS/y3yOWdiOuOa16F1eKx/9IBwWc/nwfOgTq+3xfNY9x3PidtWVed+/nA+kk9mbSuUEGryuK2VvjxUem8ffFKB+6TOToM1XwyfNcvnweNYqRtEkvc6zRwvq56s1Bm+5/E5b7Hh1RM6evSodHV1yZo1a6SiokIqKirk8OHD8qUvfUkqKiriHhD2erq6urJ6R4QQQohXI3TNNdfI8ePH5dixY/Hf2rVr5cYbb5Rjx47JsmXLpLGxUQ4dOhTvMzQ0JIcPH5Z169blvfCEEEJKGy85rq6uTlatWpX4rra2VhYsWBB/39raKu3t7dLS0iItLS3S3t4uNTU1csMNN3gVLJPJxHKAHurqikZcSt3QQpImSjNGCcb1VrRrlNG0JIXbovygJbfa2uTQaZQm8Fi4rBkeTj4z587lzvRZU53M2KplZxxyjee05Ljphk80a58I4mnuM+6r5TifED8ifiFyfCQ3i2KPdl0o8h47bvv27TIwMCBbtmyRM2fOyFVXXSUHDx70miNECCFkZpC6EXr66acTy2VlZdLW1iZtbW1pD00IIWSaw9hxhBBCglG0qRwymUzsGViZGqerTppv0H/Rujxq9NZwVZHk/UCZFY9lheLBYf46Kytq/xiKH8s4q2zs+s5BiBYcjqtDuAydt7OA6n3RK8My4HOq6w3rvxRCUel3K5+ZYPF+6LrAYe+4rS4Hem6W72Ol2RivzHo5zVBp4oY9IUIIIcFgI0QIISQYbIQIIYQEo2g9ofnz54/rCaE3gHrtTPaIfHR7a1uXR6T9DVeYe40rZbc+L26L5zn6i79MLF9d9T9yliEaTT4Ter5P/0DyeXrh9JcTy9o/wnQAWCZXGJaJUozPsE9IH5eHYvmT6KvlK9yR7xycqfCBivE+h4A9IUIIIcFgI0QIISQYRSvHXXzxxbFcoxPdoSRC0uMKL2NlS3Vl3LSGgqMcYYVZQfC8T//LWGoRlPJQ/tHrMYkihubRUmRfX59ZBh+siMmlHorKJd1Z9eaSMPM1VLxQclup3atigD0hQgghwWAjRAghJBhshAghhASjaD2hmpqa2BPSoTxKIUNlKHzCrOg6dWV0zBrybOje6B/p9Aauod/6PFYYFRE7lJNr6LRexuNgmbQHaflFIn6ZMa11peArWGVM844WymfLJ6Vwf0oJ9oQIIYQEg40QIYSQYLARIoQQEoyi9YSGhoZiTVdr79Rjc+OjxWv/BT0f9HWwznW4HQy9g9vqOTmucPpW+a25PogrfI7e11Vnlq+AaQfQI7KuHbH8vFJ75l3zhHxCAPmcx8cDctUpveepgz0hQgghwWAjRAghJBhshAghhASjaD2hd955J/Ym9PyMUtPHpxKfeUJaP3fFaUPfR3tG1dXV5rbaJ0FvBj0VXX5X2gdrLpOemzTevlbsOws8Ds4bwjlHetnHg5huz7jrevJ1vfmst+l2D4oZ9oQIIYQEg40QIYSQYBStHDcwMBDLPpZcxG7zGD7ZLrUk5apDlNG03IUSlY/0hUOadflxW5S+rDJieTOZTGL53LlzObe1pEfEdT16/VRk6iSkFGFPiBBCSDDYCBFCCAkGGyFCCCHBKFpPaKJDiEs9xEk+KdQQbRxKrfdFHwQ9FBzCrcEhzbrMOETb5anU1taOe5zx9tXLloclkn3tGnzWsC5m8rNIyERhT4gQQkgw2AgRQggJBhshQgghwShaT2jWrFnmHA2SDsvXcaVCsObkoA9ibYvo+TvoCblSaVvHttKT4/wjy3vSqb7HW3alFc9VBkJmMuwJEUIICQYbIUIIIcEoWjmusrIyluN8oh5P52jEPvhkr3TVqRUyByVTS0bD6NYok+lt8Zy4LQ6t1kOpcVg1Xrve1yUR6nq0omSPV0ZCiBv2hAghhASDjRAhhJBgsBEihBASjKL1hM6dOxfr9Tg8l1zA8nnQE8qnR6TvBw5TxnvV19cXf0ZPCNGeiq+/oj0k9ITwWNrHwnpBL0ovowfkqqeZ7EkSMlHYEyKEEBIMNkKEEEKCwUaIEEJIMIrWE3r77bdj34LpvcfH8nlcKS580j4gei4QekB4r/Q8HFzn4/vgfCRc1sfq7+9PrLO8KJcn1N3dHX/WYYXG2xfhnDVC3LAnRAghJBhshAghhASjaOW4c+fOxXKGaygsySafUpEVVRuHLVuRz3EdhszR5/GVCC1pz5IMMcwQXo+W9qzwReNBCY4QN+wJEUIICQYbIUIIIcFgI0QIISQYResJjY6OjusLlLrO7ho6XQpo78aVTdRKlWD5PujVYD2hB6RD9eC+GFpI+z54HNwXly1K8V4SEhr2hAghhASDjRAhhJBgsBEihBASjJLzhIoRH5/H1zeYbLqGNHXn2tc6j+URuXwdfSw8DnozmN777NmzOcuE++rwO1gmPC99HuJDmvfOlW7FehatbYvdh2ZPiBBCSDDYCBFCCAkGGyFCCCHBKFpPaDqRL53YdRwf/8jaz0cz9tGxfVN2+5xXx4dzXY8Vi7DY9HJS/FhxGH3e/TTvt8+2xeYfsSdECCEkGGyECCGEBKOo5bhilkZ8urvFcJ5CdbNDDf9Mk94jX0PZyfRlshKbz/NkpTIZb721bZrzpLmefLzv7AkRQggJBhshQgghwfBuhH75y1/KTTfdJAsWLJCamhq5/PLL5ejRo/H6KIqkra1NmpqapLq6WjZu3CgnTpzIa6EJIYRMD7w8oTNnzsjVV18tH/rQh+Qf//EfZeHChfLzn/9c5s2bF29z//33y549e+Thhx+W5cuXy+7du+Xaa6+VkydPSl1dXb7Ln1cK5Q9oTdZH9x1ve2tfH504zbBSvX0aTdhn2HihKGbfkUwdhXrerHT3CIaist7LNOXFMuVr6oT1m2LuF3lsvWPHDvnBD34gzzzzzLjroyiSpqYmaW1tlbvuuktERAYHB6WhoUG++MUvym233Za1z+DgoAwODsbLPT09snjx4glfQD6ZSY2QJk0j5EOaWFj5hA0PQXzm2Pk8mz6NkOv9mOyPvIs0jVCuQT7vft/d3S1z5841j+Elxz355JOydu1a+djHPiYLFy6U1atXy4MPPhivP3XqlHR2dsqmTZvi7zKZjGzYsEGOHDky7jE7Ojqkvr4+/gvVABFCCJl6vBqh1157Tfbt2yctLS3yne98R26//Xb57Gc/K1//+tdFRKSzs1NERBoaGhL7NTQ0xOuQnTt3Snd3d/x3+vTpyVwHIYSQEsTLExodHZW1a9dKe3u7iIisXr1aTpw4Ifv27ZObb7453m68bmWuLmwmk5FMJuNb7qIGZTJ97a7uOdbTZEPx5JN8yQKF2hbLlPZYZObh479YEjqus95312+BT1oRS8pzyfTW++wKeZUP2dyrJ7Ro0SK59NJLE9+9733vkzfeeENERBobG0VEsno9XV1dWb0jQgghxKsRuvrqq+XkyZOJ71599VVZunSpiIg0NzdLY2OjHDp0KF4/NDQkhw8flnXr1uWhuIQQQqYTXnLc5z73OVm3bp20t7fLxz/+cXnuuedk//79sn//fhG50DVrbW2V9vZ2aWlpkZaWFmlvb5eamhq54YYbCnIBiM/QYx+ZxuqCu7qkPt13xOpKWyPtXKPw9PpCRu8tlBRW7NkiSXGTJryOJZlXVlYm1qWxGqzMwz77uoZkW1MudHT68cqQj+HdXo3QFVdcIX/7t38rO3fulHvuuUeam5tl7969cuONN8bbbN++XQYGBmTLli1y5swZueqqq+TgwYNFP0eIEELI1OM1T2gq6Onpkfr6+knvn6YnZP2nUQo9IcuMzNecIiSfvU0f2BMiaWBPaAyfnhD+buTqCRVsnhAhhBCST4o6lcNksP4jzud/y/q/EvxPyWeYps9/N67/UqwUBfmaFY3HDtUjYc+HuEjT29HLGE7HR9mwek14XMRSM1zDxvVvjksV0b8N+Dtx7ty5xLKOboNM9jeGPSFCCCHBYCNECCEkGGyECCGEBGPaeUIW+RwRo9fPnj3b3NfyhFyj4zQubVd7RKjPpkkVzJA4ZLqB7wO+wzU1NfHnOXPmJNbhu6WXh4eHzfPo0XM4ks71W6Dfw6qqqpzrEPz9wWvVvxv9/f1mGax5Q7r8URRNeAQue0KEEEKCwUaIEEJIMGaUHOdiskMgrS63SLL765o4Zg15dkls1hBtlAn0tr4TWScbzZeQQuIz2RyXtfwmIrJgwYL4Mw6lxmHKPr8betlVJqS6ujr+jJNg8XdFl9k1XePs2bMTOo6rjJONqM2eECGEkGCwESKEEBIMNkKEEEKCMe08oTTDsK3jWMOw0QPC4ZNay3Xps+jH6GXc1gou6DpPGq+GQ7ZJMZAmxQh6HegJ6XfaJywXeirW9Ax8V3DbRQvXJJb17wj+HlWUJ6+nYvbY8q+6jibWWb8jrrA9yGSzLGvYEyKEEBIMNkKEEEKCwUaIEEJIMKadJ5QGrW9aWq5IUpNFT0hrtyLJMf3W3B6RbJ9H45PkCucF4bIGfSi8diyjNY+I84RIKeCak6PX45wcfA+tOYP4Lulj4buxoP6yxHJlJvfvCvrOlbOT245GY+/ooouT3tIvOp/LWSZrDpRI9vXo9ZNNlMmeECGEkGCwESKEEBIMNkKEEEKCUXKe0GTjE/ke29I+RZLzDNATspZxfL8rPYPWja05RAius1IJuzyfyWq9IvmZR0DIu/i8//od9v3d0D4JvrPWsmtOkfZ18J3MVNrek8blWc8qm/gcSMsvLuTv7buwJ0QIISQYbIQIIYQEo+TkOJR08tld1MfyCduD66xMhj5hPUSSQ7axa4/DNDUuiU2vx21xOU1WViu9BOU5MlVYQ6VFROrq6hLLlnyN78PH//ul8efZFRg+J/nbUAXn1Xz7a8n3QYfeQc4PJadyjJRPPNyOlRkWp4jgkG2f6RoThT0hQgghwWAjRAghJBhshAghhASj5DwhxMcjcg5rNNL0WqFtfFLiWlrzeOfRy67Q73oZz4PL1nGtoaG4vSs1uHU/mBKCuEjj+VoeL3pCuF57IXPmzEmsu357MryO9nnK4T2rNIZzDw4NJdZ9+L8m37tnvp4M/zWrPHefYfg8DLNWr8/IaPK4Q3Befa3oAeG2OJw7H+8pe0KEEEKCwUaIEEJIMNgIEUIICUbJeUJpNGLX/BfLM7LmyrhC/FjrXGF7tJdjpXnAbVHLtcIFWaHpx1sfwq/xmWPE+UjThzTzAq37jutwXo1+X/Ddqa2tTS6r1OCu8unz4pyiWbBv1nM8qsoMPzGWV+NK2d3f3x9/Pnv2rLntROcb+rxz7AkRQggJBhshQgghwSg5Oa6QYXt0V9MVDVd30bEMKGdtXP3bOY9jlUFE5JwaMvnsyz82t7VCCVnnsbrY4623ImO75EYLK8QPYklurmeE8tz0xHq3UJJCuRoj31vvEg7v1s/TEEjmET7/6ll0ZT/u60uWsbyiPOe2ZQJTSlRm1TffeiGxDiU2vTwwMGCWqRDSPHtChBBCgsFGiBBCSDDYCBFCCAlGyXlCoXB5OZp1qy51b/TvoF+B59FhP/7TbyfDhTz94rHEsuWpWOkmXGF6rMyLLj9JX4/LH8pXiBZXagoyPXFNd9CgJ4T7WkO00ecp0xlc4TyYykFPs8jyhMBPerPrR8nzekxL0O80Xqvlj+E0ECzjRLMuc4g2IYSQkoCNECGEkGCwESKEEBKMkveE0swbsvwYVygeS/NEHfW8OlYG5iNgioXzsK8ux6hDZ7XmBmF5dRmrq5Mh4zF0Bx5X68Yu7dfym9KkDUd85hjRI5p5uHxC9E303BmcV1MGz61+H3AdPv/6vUP/BZetfRFrLh8eB7e1PKGpgD0hQgghwWAjRAghJBglL8dZ0gvKPfkM8WMNCU5DVtgbj3A0upttRc0WsSOGV1VVJZatMD4+Q7R9wPL5hBJyUah7R6YWHynelT0YpS4tSeP78L/v/qfE8sc+tyJnGTDTqg6LMwpl+OZfvDpu2ccrM8pmln2A2VJRXpzoOQsFe0KEEEKCwUaIEEJIMNgIEUIICUbJe0KWLuzjgyBWhlNc7xr+qTMousqAqraVAdUqE2J5N6hjo4aMZcbzaqzhoD7+i2vbfKWMIKWLywfUzwQ+w/i8oMei3wGdeXQ8vt4+Fl7HlUIlkfYBhoUjWEb9brnSQOjlvr6+xDprODqC9VaIIdzsCRFCCAkGGyFCCCHBYCNECCEkGCXvCaXB8lBc3o3X/Bc9L8WxKa4fVjowasTrVq/MWSZM94uLoyNjx/r+Px1NrMMwPqgDW/OEEF2PqOH7pOh2hR6x5v74zCmiX1Tc+IRnyrWfyMRTEoyHT/gcRPupWCZXGgXrvOjz9Pb25tzP8sNc71khYE+IEEJIMNgIEUIICQYbIUIIIcEoeU/IJ3YcYqX0dXkDel8sw5Efv5JYvvbKtWP7Ybw3j9hMszJJnyrLY1HGT3aaCohppepmw5WXJ9Z99wfPJ5bRI7K8m6wyq/Pg/CJc1sdyhbVHDdxKm0ymJz6x41xzBvH5suK0YSw5jeWfIvic4vw8LJM1RwfnAum5P674b3o9bjsVHil7QoQQQoLBRogQQkgwSl6Os8CuMMpzllznkvISw6GNDK0iIv/vpeM5t0VJyhrGvObS/5BYF41CeKDK3LfTkh98wvLg9jU1NYl1lZA5Vkucrvq3uv4oRWAolZ6enviza+iuJU9Yw8bJ9AGfAbzvWt7C9wPluEwmE3/2+Y3B47pCC+lllO7w/bCeWysckCsEWSGGbLMnRAghJBhshAghhATDqxEaHh6WL3zhC9Lc3CzV1dWybNkyueeee7IiJbe1tUlTU5NUV1fLxo0b5cSJE3kvOCGEkNLHyxP64he/KF/96lflkUcekZUrV8oLL7wgf/iHfyj19fWydetWERG5//77Zc+ePfLwww/L8uXLZffu3XLttdfKyZMnpa6uLu8X4DNME0mjb2r91uWhWOdELRdDwWu9NssvmoXXOraM+nJ2vahygHyMdao1bwTPg56Q1sSt4+B5sbxYT6i163Lo1Mx4XMQnfTH9oukL3kvtueDzhM9BfX19/Lm2tjaxzvJb8X3A38d33nknZxlxioLlH+E63NeacuH6jczHO+DVCP3whz+UP/iDP5DNmzeLiMh73/te+eu//mt54YUX4gLt3btXdu3aJdddd52IiDzyyCPS0NAgBw4ckNtuuy3rmIODg4kbrg1mQggh0xsvOW79+vXyve99T1599VUREXnppZfk2WeflY985CMiInLq1Cnp7OyUTZs2xftkMhnZsGGDHDlyZNxjdnR0SH19ffy3ePHiyV4LIYSQEsOrJ3TXXXdJd3e3rFixQsrLy2VkZETuvfdeuf7660VEpLOzU0REGhoaEvs1NDTI66+/Pu4xd+7cKdu2bYuXe3p62BARQsgMwasRevzxx+XRRx+VAwcOyMqVK+XYsWPS2toqTU1Ncsstt8Tbjaed5/JqMpmM0yuYKrS+aaXDFrFDXaBfoTVYVzoDq0wuX2S2up0VFUktengYQ7Qrr2mWPc/JCoPjCsWj761rPpI19wrrGJ8ZPXcDdfm33norsTwwMCC5sOaP0AMqbtL4w9ax0ENBj0j7oDiHCD1e/Q6gf4rLeF69bL07IsnfL9ccIsuLtY6L20/2/fBqhD7/+c/Ljh075JOf/KSIiFx22WXy+uuvS0dHh9xyyy3S2NgoIhd6RIsWLYr36+rqyuodEUIIIV6eUH9//7ijkt5tHZubm6WxsVEOHToUrx8aGpLDhw/LunXr8lBcQggh0wmvntDv//7vy7333itLliyRlStXyo9+9CPZs2ePfPrTnxaRC12z1tZWaW9vl5aWFmlpaZH29napqamRG264oSAXkK8uNy67MntqrOi2InaWVleYDH1954eS58HjDpdXqHVJCS176KW61lG7G+0zBN0KRYLSBEbnRjlCg5KgJXOgVIchTnBem2YqwpSQqcEnC6slJbmisv/mN7+JP7vkqzlz5uQ8pytyvJaRMWyVFcbHZS2kYcqHaH/5y1+WP/mTP5EtW7ZIV1eXNDU1yW233SZ/+qd/Gm+zfft2GRgYkC1btsiZM2fkqquukoMHDxZkjhAhhJDSxqsRqqurk71798revXtzblNWViZtbW3S1taWsmiEEEKmO4wdRwghJBgln8ohn8MyNajHol+hdVb0JywNFsvn0mu1xvxPL/9LYt3GK1cny6yGXQ8OJod3Do8kdW19fc8ePZ5Y59J5tUeE147+ka43HDqNdWrdO9wXh1lr3R7Lj8Nm582bF3/GCB29vb2JZSuDLodsFzdpQnhpj9HlD2v/RftDItnPqc54is8e+kk4FPzXv/51/NmVykGX0cfXdHlaSD6GaLMnRAghJBhshAghhASDjRAhhJBglLwn5INL39S6KmqjqLlqzTgrfA74JBaueSl6Pc7BeeGVnyaWtS9i6da4rateLL3claLYmvuD6Gu1Qh+JZF+f9qK07i6SfT+s8ED58hRJceHrHfukx9bPJj6X+NzqtOGukFf4HOt32Cedtw++8+LycV72hAghhASDjRAhhJBgTDs5zicirLUvdksxdIdexq4x7qvPi9IQ7ovylZa38HqwTFb5ER85DuvN6oKjpKDliNH/uCSxrrymJue+eAasp8FjJ3OWySdMiStsj752hvApLdJIRfpe4/NvRc13DefW753v75MViscKK5ZmGstUTENgT4gQQkgw2AgRQggJBhshQgghwZh2npCFTwgKHFqJaG8HQ2ggVuZYl39hDYd2hX7XWJ6Wr2Zshe3JGqL928vH3W88tCaO15KV0fHS5sTy8ItjIY1curw+lu/w9EQZGManZPF55n2eEZd/6vOMWM9Xvo5TDLAnRAghJBhshAghhASDjRAhhJBgTDtPKJ/pvjXov+gQ7eh1WOm8fecGaFCbdqUV16AnpD0vvG68HvR99FwmLD/uq/0wVwgfK3w+pgLHa589d27O42K9YXh9QtJ4LJo0c8lc85F8KDbfx4I9IUIIIcFgI0QIISQYbIQIIYQEY9p5QpYW6vKLrPH+Vvh217wUC/SPrDQQVhwqkaTXgce1Qsy70knUQIw3fWwsL5bJqgvLD8O5VXjv8PoGHXOQcpFmHkcp6e4kf+QrFhvul8ZPKuVnkT0hQgghwWAjRAghJBjTTo6zSBOqw5LnsoYLg0Slw/pYGUFFsmUoKyQQZl7Uchyex5IM8dpQ6nLVRa7j4r54HLxWnyHyVuZb3NYaXo/yISG+WBKbTxqRNNleSxn2hAghhASDjRAhhJBgsBEihBASjBnlCaXBZ/gkpoHQWq/Lqzl79mzO87rCz2jvw3UeDXpAVVVViWVrKCl6KujzaM8Lj4N+V6Xy0rJ8KfCAcF9dF67wRpOtJzJ98PFuXNvq9fkK/+N7rFKGPSFCCCHBYCNECCEkGGyECCGEBGNGe0L50m/RV8A5LJZm7Ar5Y6UZx219UjtozwU9FPR5LI/FlbL73I9+MnYclep7PPr6+uLP6EthPQy99GryPGrOFNYDzqfS6328vpmi0U9HfFNcT9bncZ03zb7T9fljT4gQQkgw2AgRQggJxoyW4wqFJfGgVJdGjksTAVqfByU1PKeVidQVBTwxHPrFf0mssyKT90GZUJqwhl3j8G1c1teOZUgTyZiEJc2w6zTnyddxXWF8LImwlKU79oQIIYQEg40QIYSQYLARIoQQEgx6QhMkX/qyKy1CmvAhPufRoA+FHooeOo3HwuNay3hcLKP2ptDzQd8K99XDsHt6enKuE0kOQXdp5/kanltKGn2p4Hrv0vgzhThOPs+T5tqL7VlkT4gQQkgw2AgRQggJBhshQgghwaAnpPDRZH3S9lrnmKp5KZZH5Ep9gJ5KZWVlzn3x+vQ8IvSLrDlROP8I6xRDC2m/Cb0nvB69r6v+08zNKDbtfTowVf6M5aEW6p21zumLVcZi84vYEyKEEBIMNkKEEEKCQTlOMdmuaJourEviKRS6u+6SyVDe6u7ujj9jtGuUyfT6rGyphmSAQ7KtSNgiydBCuC2GIaJMVrroe5fmXXFJX5YMmy/ZzHeYtc+Qf2tbfO9Cvw/sCRFCCAkGGyFCCCHBYCNECCEkGPSEFFMxdLGQYWI0aUIJuY6lPSJrqLRI0qtBTwi1dStLK9YLppfQvg96Qi5NfKL4ehDTNfT+VFIMIXN8Qmv54PKWcL1Ok4IpUxBrygIeN3R2YfaECCGEBIONECGEkGCwESKEEBKMkveEpkpbLzUN32cegQucN6Q1ZZ9wOj5zM1xhe7BM+ry4bqpIk/bZx49kigh/8Nlz3Q/rGUc/Rm/r8+zhM45lQo+0trY2/jxnzpycZRAReeedd+LP6J/29/fnPC+WfyqeL/aECCGEBIONECGEkGCwESKEEBKMkveEpopi1OV9fKp8zrew5hVYcehQb7bKhLHhkHzN/fGZM5FmfkWafX28punmEfnEVrQ8RysO23jL2vdxpbDX+6JfZJVfp0QRcc+jq66ujj9jzEbcdt68efHnTCYjFvpdwziL6PFynhAhhJBpBRshQgghwaAcN0l8uqWFku58jjVVKSOmKlNsofCRdFA+8cE1BF2TRrorNXkun8+lPpbr3uFwaL2M0pcVXgqxpLuampqc60SyJWl9L11DwXUZ8TxIX19fzvJiCKxCyHPsCRFCCAkGGyFCCCHBKDo5zrd7F0reKobjpqEYyxSCYqkHqxzFUsapIJ9Zin22tZZRDk0jOVvRCVCOsyQ3lxyny4jbWtfjUy8TYSLbF10j1NvbG7oIZAZR6h4WGcPnXrpSkJD80NvbK/X19eY2ZVGR/Zs1Ojoqb775pkRRJEuWLJHTp0/L3LlzQxeraOnp6ZHFixeznhywniYG62lisJ5soiiS3t5eaWpqcsaMLLqe0KxZs+SSSy6Rnp4eERGZO3cub/IEYD1NDNbTxGA9TQzWU25cPaB34cAEQgghwWAjRAghJBhF2whlMhm5++67nXGPZjqsp4nBepoYrKeJwXrKH0U3MIEQQsjMoWh7QoQQQqY/bIQIIYQEg40QIYSQYLARIoQQEgw2QoQQQoJRtI3QAw88IM3NzVJVVSVr1qyRZ555JnSRgtHR0SFXXHGF1NXVycKFC+WjH/2onDx5MrFNFEXS1tYmTU1NUl1dLRs3bpQTJ04EKnFx0NHRIWVlZdLa2hp/x3q6wC9/+Uu56aabZMGCBVJTUyOXX365HD16NF7PeroQX+4LX/iCNDc3S3V1tSxbtkzuueeerICfM72eUhMVIY899lg0e/bs6MEHH4xeeeWVaOvWrVFtbW30+uuvhy5aEH73d383euihh6If//jH0bFjx6LNmzdHS5Ysic6ePRtvc99990V1dXXRN7/5zej48ePRJz7xiWjRokVRT09PwJKH47nnnove+973Ru9///ujrVu3xt+znqLoN7/5TbR06dLo1ltvjf75n/85OnXqVPTd7343+tnPfhZvw3qKot27d0cLFiyI/uEf/iE6depU9Dd/8zfRnDlzor1798bbsJ7SU5SN0JVXXhndfvvtie9WrFgR7dixI1CJiouurq5IRKLDhw9HURRFo6OjUWNjY3TffffF25w7dy6qr6+PvvrVr4YqZjB6e3ujlpaW6NChQ9GGDRviRoj1dIG77rorWr9+fc71rKcLbN68Ofr0pz+d+O66666LbrrppiiKWE/5oujkuKGhITl69Khs2rQp8f2mTZvkyJEjgUpVXHR3d4uIyHve8x4RETl16pR0dnYm6iyTyciGDRtmZJ3dcccdsnnzZvnwhz+c+J71dIEnn3xS1q5dKx/72Mdk4cKFsnr1annwwQfj9aynC6xfv16+973vyauvvioiIi+99JI8++yz8pGPfEREWE/5ouiiaL/99tsyMjIiDQ0Nie8bGhqks7MzUKmKhyiKZNu2bbJ+/XpZtWqViEhcL+PV2euvvz7lZQzJY489Ji+++KI8//zzWetYTxd47bXXZN++fbJt2zb54z/+Y3nuuefks5/9rGQyGbn55ptZT//OXXfdJd3d3bJixQopLy+XkZERuffee+X6668XET5P+aLoGqF3wSyDURRlfTcTufPOO+Xll1+WZ599NmvdTK+z06dPy9atW+XgwYNSVVWVc7uZXk+jo6Oydu1aaW9vFxGR1atXy4kTJ2Tfvn1y8803x9vN9Hp6/PHH5dFHH5UDBw7IypUr5dixY9La2ipNTU1yyy23xNvN9HpKS9HJcRdddJGUl5dn9Xq6urqy/uOYaXzmM5+RJ598Up566im55JJL4u8bGxtFRGZ8nR09elS6urpkzZo1UlFRIRUVFXL48GH50pe+JBUVFXFdzPR6WrRokVx66aWJ7973vvfJG2+8ISJ8nt7l85//vOzYsUM++clPymWXXSaf+tSn5HOf+5x0dHSICOspXxRdI1RZWSlr1qyRQ4cOJb4/dOiQrFu3LlCpwhJFkdx5553yxBNPyPe//31pbm5OrG9ubpbGxsZEnQ0NDcnhw4dnVJ1dc801cvz4cTl27Fj8t3btWrnxxhvl2LFjsmzZMtaTiFx99dVZQ/xfffVVWbp0qYjweXqX/v7+rKyg5eXl8RBt1lOeCDgoIifvDtH+q7/6q+iVV16JWltbo9ra2uhf//VfQxctCH/0R38U1dfXR08//XT0q1/9Kv7r7++Pt7nvvvui+vr66IknnoiOHz8eXX/99RwqGkWJ0XFRxHqKogvD1ysqKqJ77703+ulPfxp94xvfiGpqaqJHH3003ob1FEW33HJL9Fu/9VvxEO0nnngiuuiii6Lt27fH27Ce0lOUjVAURdFXvvKVaOnSpVFlZWX0O7/zO/Fw5JmIiIz799BDD8XbjI6ORnfffXfU2NgYZTKZ6IMf/GB0/PjxcIUuErARYj1d4O///u+jVatWRZlMJlqxYkW0f//+xHrWUxT19PREW7dujZYsWRJVVVVFy5Yti3bt2hUNDg7G27Ce0sN8QoQQQoJRdJ4QIYSQmQMbIUIIIcFgI0QIISQYbIQIIYQEg40QIYSQYLARIoQQEgw2QoQQQoLBRogQQkgw2AgRQggJBhshQgghwWAjRAghJBj/H6HJqU7XPoRqAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "label_visualization2 = cle.dilate_labels(final_spots, radius=3)\n", "\n", "cle.imshow(image, continue_drawing=True)\n", "cle.imshow(label_visualization2, labels=True, alpha=0.5)" ] } ], "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" } }, "nbformat": 4, "nbformat_minor": 5 }