{"cells": [{"metadata": {"_uuid": "3821b7456b6345faa1776997c7547e20c1a25460", "trusted": false, "_cell_guid": "c13d59d8-cb49-408d-8b1b-b8bf46d70d94", "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nfrom skimage.io import imread\nfrom skimage.transform import downscale_local_mean\nfrom os.path import join\nfrom tqdm import tqdm\n\ninput_folder = join('..', 'input')\n\ndf_mask = pd.read_csv(join(input_folder, 'train_masks.csv'), usecols=['img'])\nids_train = df_mask['img'].map(lambda s: s.split('_')[0]).unique()\n\nimgs_idx = list(range(1, 17))", "execution_count": 79}, {"metadata": {"_uuid": "a08223bbc61537892596ec8125b24cef54366014", "collapsed": false, "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "load_img = lambda im, idx: imread(join(input_folder, 'train', '{}_{:02d}.jpg'.format(im, idx)))\nload_mask = lambda im, idx: imread(join(input_folder, 'train_masks', '{}_{:02d}_mask.gif'.format(im, idx)))\nresize = lambda im: downscale_local_mean(im, (4,4) if im.ndim==2 else (4,4,1)).astype(np.float32) / 255\nmask_image = lambda im, mask: (im * np.expand_dims(mask, 2))", "execution_count": 68}, {"metadata": {"_uuid": "f88b39abd2368d7ebbb273e9fe4e0ca20231f677", "collapsed": false, "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "im = resize(load_img(ids_train[2], 7))\nim_mask = resize(load_mask(ids_train[2], 7))\n\nfig, ax = plt.subplots(1, 3, figsize=(18, 6))\nax[0].imshow(im)\nax[1].imshow(im_mask)\nax[2].imshow(mask_image(im, im_mask))", "execution_count": 69}, {"metadata": {"_uuid": "5c4c5ac18c1e5ff80f8467779c4b69ddecbdb2b6", "collapsed": false, "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "mean_mask_idx = {}\nfor cnt, img_id in enumerate(ids_train):\n    for img_idx in imgs_idx:\n        im_mask = resize(load_mask(img_id, img_idx))\n        if img_idx in mean_mask_idx:\n            mean_mask_idx[img_idx] = (mean_mask_idx[img_idx] * cnt + im_mask) / (cnt+1)\n        else:\n            mean_mask_idx[img_idx] = im_mask.astype(np.float64)", "execution_count": 83}, {"metadata": {"_uuid": "02e5c5eb94bc247c6eba4a5d96f47e5c62897849", "collapsed": false, "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "fig, ax = plt.subplots(8, 2, figsize=(8, 32))\nax = ax.ravel()\nfor i, img_idx in enumerate(imgs_idx):\n    ax[i].imshow(mean_mask_idx[img_idx])\n    ax[i].set_title(str(img_idx))", "execution_count": 88}, {"metadata": {"_uuid": "13f25885edd4372d5195688719cf1f62608ef8ca", "collapsed": false, "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "", "execution_count": null}], "nbformat_minor": 0, "metadata": {"language_info": {"mimetype": "text/x-python", "nbconvert_exporter": "python", "codemirror_mode": {"version": 3, "name": "ipython"}, "file_extension": ".py", "name": "python", "pygments_lexer": "ipython3", "version": "3.6.1"}, "kernelspec": {"display_name": "Python 3", "language": "python", "name": "python3"}}, "nbformat": 4}