{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import skimage.transform\n", "import scipy\n", "from scipy import ndimage\n", "import matplotlib.pyplot as plt\n", "from skimage.morphology import medial_axis, watershed\n", "create_dist_map = lambda img, mask=None: medial_axis(img,mask, return_distance = True)[1]\n", "import os\n", "from skimage.measure import block_reduce\n", "plt_settings = {'interpolation':'none'}\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Distance Maps\n", "Here we calculate distance maps with the ```ndimage.distance_transform_``` family of functions. Initially we focus on test images since it is easier to see what is happening with these images." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def generate_dot_image(size = 100, cutoff = 0.15):\n", " \"\"\"\n", " Create a simple synthetic image with a repeating pattern\n", " Keyword arguments:\n", " size -- the size of the image on one size, final size is size x size (default 100)\n", " imag -- the cutoff between 0 and 1, higher means less connected objects (default 0.15)\n", " \"\"\"\n", " xx,yy = np.meshgrid(range(size),range(size))\n", " return np.sin(6*np.pi*xx/(100)-1)+1.25*np.cos(5*np.pi*yy/(100)-2)>cutoff" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "img_bw = generate_dot_image(28,0.50)\n", "plt.imshow(img_bw,cmap='gray', **plt_settings)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "img_dist = ndimage.distance_transform_edt(img_bw)\n", "plt.imshow(img_dist, **plt_settings)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Comparing \n", "There are a number of different methods for ```distance_transform``` inside the ```ndimage``` package of ```scipy``` compare the results of the different approaches for this and other images.\n", "- What are the main differences?\n", "- Quantitatively (histogram) show what situations each one might be best suited for?" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5,1,'Distance\\n(px)')" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "# calculate new distance transforms\n", "img_dist = ndimage.distance_transform_edt(img_bw)\n", "img_dist_cityblock = ndimage.distance_transform_cdt(img_bw,metric = 'taxicab')\n", "img_dist_chess = ndimage.distance_transform_cdt(img_bw,metric = 'chessboard')\n", "\n", "fig, (ax1,ax2,ax3,ax4) = plt.subplots(1,4, figsize = (30,10))\n", "ax1.imshow(img_bw,cmap = 'gray', **plt_settings)\n", "ax1.set_title('Mask Image')\n", "dmap_im = ax2.imshow(img_dist,vmax = img_dist.max(), **plt_settings)\n", "ax2.set_title('Euclidean')\n", "ax3.imshow(img_dist_cityblock,vmax = img_dist.max(), **plt_settings)\n", "ax3.set_title('Cityblock')\n", "ax4.imshow(img_dist_chess,vmax = img_dist.max(), **plt_settings)\n", "ax4.set_title('Chess')\n", "fig.subplots_adjust(right=0.8)\n", "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", "cbar = fig.colorbar(dmap_im,cax=cbar_ax)\n", "cbar_ax.set_title('Distance\\n(px)')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## More Complicated Objects\n", "We now make the image bigger (changing the ```size``` parameter) and connect them together (the ```cutoff``` parameter)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "Text(0.5,1,'Distance\\n(px)')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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YOb5b+5cPsn6tk2tbFuk6rCbTzIuo3H5JPPWVPbfUZuS0VA+yWJVh/260PkzGson6R9H+7bheNo2J1l1eNjPhTG6z79y780DX++w+rZtqGw7yarDefMayqf/OvNWICabk9FJVh0e53gacwz1qawEztpanfwCAAAAAADY11LW/OI25gICAAAAAACwMVZ+5temVrMNWefKtm3JSkbrY52z2kaLVOclw9Vs3drDncvT90S3om3nrmmtz+26fycybwViMqZib93qHPoVG4tUHXazSmar9G48dlp9N5zRmHySeSsQk83JaCifZLGqw24+yfwZ7XaaS89fma0vu3h16O+zNu942laLVOf1zVt1+Icf947BbZ1kfdumVLb1x/xFqg67+STzZzScTzJvTWU3n/6j1jmjoXySxaoO+3Wh82c0lE8y/DN6846nbXQW1XmH/YwYetzle6fv+3krEJPNrGw7qxq9obzG5JPMX1PZzSfZzIxOsjr00M9cIzPad5KVleuWFcuxa54PPd4RAAAAAAAAbIyVn/kFAAAAAABwkNaSHWt+0bOSJ7+2rZptyDpUtm17VjJaH/3vw6rmtW0WqTrs1rIlh1Sz3TXNfvfytKat3Tmt9blwZbaOYfZa1/ZWIA5llSxWddjNKhmuOrxw943p6w3uZX9C+7wZzVYCbkpGQ/kki1Ud9msOx2TUzncrSaeXzz/ae9xMlPNVVvbrYFY1r220SNVht5atb96qww+56/dH7e/i9W3rW9k2lFWyWNVhN59ksYze3Ls+f03lbA3UpmQ0lE+yWNVhv+Zw3oyG80nG/bw++nhKVjevbbPMqsPDfl5cfmfnGFigAjHZnMq2pVcddvIak0//deatQEw2J6MzqzockVHXaVVW+owPHMdKnvwCAAAAAAAYY9fML3qs+QUAAAAAAMDGWImZX2rZjrZK9XryOpiM1ssq5bVN+lUFi1QddmvZknHVbOc69YZ3XJ5evnJ5tnPtwVyZ7tcBX8fe1jqXD3sPHb+ybdlVDmNq9JLFqg67WSXDVYePvfvqrcvj8km2oaZykerQZLGqw24+ySEZne9Uj16aVl2duzbN5+LD/XyOX1nZzSpZrby2TX/MX6TqsFvL1jdv1eGHX379kfved7z6tvWqQBxTo5csVnXYzSdZRkZD+SSbktFQPsliVYf9msN5MxrOJ7n9ONo33/HU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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "# use a bigger base image\n", "img_bw = generate_dot_image(100,0.15)\n", "img_dist = ndimage.distance_transform_edt(img_bw)\n", "img_dist_cityblock = ndimage.distance_transform_cdt(img_bw,metric = 'taxicab')\n", "img_dist_chess = ndimage.distance_transform_cdt(img_bw,metric = 'chessboard')\n", "\n", "fig, (ax1,ax2,ax3,ax4) = plt.subplots(1,4, figsize = (30,10))\n", "ax1.imshow(img_bw,cmap = 'gray', **plt_settings)\n", "ax1.set_title('Mask Image')\n", "dmap_im = ax2.imshow(img_dist,vmax = img_dist.max(), **plt_settings)\n", "ax2.set_title('Euclidean')\n", "ax3.imshow(img_dist_cityblock,vmax = img_dist.max(), **plt_settings)\n", "ax3.set_title('Cityblock')\n", "ax4.imshow(img_dist_chess,vmax = img_dist.max(), **plt_settings)\n", "ax4.set_title('Chess')\n", "fig.subplots_adjust(right=0.8)\n", "cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n", "cbar = fig.colorbar(dmap_im,cax=cbar_ax)\n", "cbar_ax.set_title('Distance\\n(px)')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Watershed\n", "We can use the watershed transform to segment closely connected objects. We see in the first image that the standard connected component labeling ```ndimage.label``` shows only 3 when we see 9" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5,1,'Connected Component Analysis')" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cc_img = ndimage.label(img_bw)[0]\n", "\n", "%matplotlib inline\n", "fig, (ax1,ax2) = plt.subplots(1,2, figsize = (30,10))\n", "ax1.imshow(img_bw,cmap = 'gray', **plt_settings)\n", "ax1.set_title('Mask Image')\n", "dmap_im = ax2.imshow(cc_img, **plt_settings)\n", "ax2.set_title('Connected Component Analysis');" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "from skimage.feature import peak_local_max\n", "def simple_watershed(img_dist, img_bw):\n", " \"\"\"\n", " Calculate the watershed transform on an image and its distance map \n", " by finding the troughs and expanding from these points\n", " \"\"\"\n", " local_maxi = peak_local_max(img_dist, labels=img_bw,\n", " footprint=np.ones((3, 3)),\n", " indices=False)\n", " markers = ndimage.label(local_maxi)[0]\n", " return watershed(-img_dist,markers,mask = img_bw)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Applying Watershed\n", "We can apply watershed to the following image. \n", "- Why do the bottom row of objects not show up?\n", "- How can the results be improved" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5,1,'Watershed Analysis')" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ws_img = simple_watershed(img_dist,img_bw)\n", "%matplotlib inline\n", "fig, (ax1,ax2,ax3) = plt.subplots(1,3, figsize = (30,10))\n", "ax1.imshow(img_bw,cmap = 'gray', **plt_settings)\n", "ax1.set_title('Mask Image')\n", "ax2.imshow(cc_img, **plt_settings)\n", "ax2.set_title('Connected Component Analysis')\n", "ax3.imshow(ws_img, **plt_settings)\n", "ax3.set_title('Watershed Analysis')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.6.4" } }, "nbformat": 4, "nbformat_minor": 1 }