{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
ESF projekt Západočeské univerzity v Plzni reg. č. CZ.02.2.69/0.0/0.0/16 015/0002287
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Graph-Cut Segmentation\n", "\n", "\n", "## Install\n", "\n", "```\n", "conda install -c mjirik -c conda-forge pygco imcut\n", "\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Graph-Cut" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "# pip install pygco\n", "import pygco\n", "img = np.array([[10, 9, 2],\n", " [8, 10, 1],\n", " [10, 1, 2]], dtype=np.int32)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simple Graph-Cut with constant N-links" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1, 1, 0],\n", " [1, 1, 0],\n", " [1, 0, 0]])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lambd = 1\n", "pairwise_alpha = -1\n", "\n", "# T-links setup\n", "unaries = np.zeros([3,3,2], dtype=np.int32)\n", "unaries[:,:,0] = lambd * img\n", "unaries[:,:,1] = lambd * (10 - img)\n", "\n", "\n", "pairwise = pairwise_alpha * np.eye(2, dtype=np.int32)\n", "\n", "\n", "pygco.cut_simple(unaries, pairwise)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Graph-Cut with N-links" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[10 9 2]\n", " [ 8 10 1]\n", " [10 1 2]]\n", "[[ 8 9 9]\n", " [ 8 1 9]\n", " [10 10 10]]\n", "[[ 9 3 10]\n", " [ 8 1 10]\n", " [ 1 9 10]]\n" ] }, { "data": { "text/plain": [ "array([[1, 1, 0],\n", " [1, 1, 0],\n", " [1, 0, 0]])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import scipy\n", "import scipy.ndimage\n", "import scipy.ndimage.filters\n", "costv = scipy.ndimage.filters.convolve(img, [[1],[-1]])\n", "costh = scipy.ndimage.filters.convolve(img, [[1, -1]])\n", "# costv = 1\n", "# costh = 1\n", "costv = 10 - np.abs(costv[:, :])\n", "costh = 10 - np.abs(costh[:, :])\n", "print(img)\n", "print(costv)\n", "print(costh)\n", "\n", "pygco.cut_simple_vh(unaries, pairwise, costh, costv)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## General Graph construction" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[1, 1, 0],\n", " [1, 1, 0],\n", " [1, 0, 0]])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# use the gerneral graph algorithm\n", "# first, we construct the grid graph\n", "inds = np.arange(img.size).reshape(img.shape)\n", "horz = np.c_[inds[:, :-1].ravel(), inds[:, 1:].ravel()]\n", "vert = np.c_[inds[:-1, :].ravel(), inds[1:, :].ravel()]\n", "edges = np.vstack([horz, vert]).astype(np.int32)\n", "\n", "\n", "\n", "result_graph = pygco.cut_from_graph(edges, unaries.reshape(-1, 2), pairwise)\n", "result_graph.reshape(img.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# `imcut` package" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "from imcut import pycut\n", "import matplotlib.pyplot as plt\n", "\n", "# create data\n", "data = np.random.rand(30, 30, 30)\n", "data[10:20, 5:15, 3:13] += 1\n", "data = data * 30\n", "data = data.astype(np.int16)\n", "\n", "# Make seeds\n", "seeds = np.zeros([30, 30, 30])\n", "seeds[13:17, 7:10, 5:11] = 1\n", "seeds[0:5:, 0:10, 0:11] = 2\n", "\n", "# Run\n", "igc = pycut.ImageGraphCut(data, voxelsize=[1, 1, 1])\n", "igc.set_seeds(seeds)\n", "igc.run()\n", "\n", "# Show results\n", "colormap = plt.cm.get_cmap('brg')\n", "colormap._init()\n", "colormap._lut[:1:, 3] = 0\n", "\n", "plt.imshow(data[:, :, 10], cmap='gray')\n", "plt.contour(igc.segmentation[:, :, 10], levels=[0.5])\n", "plt.imshow(igc.seeds[:, :, 10], cmap=colormap, interpolation='none')\n", "# plt.savefig(\"gc_example.png\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Model debug" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "a = igc.debug_show_model(start=0, stop=100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Change model parameters" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "segparams = {\n", " # 'method':'graphcut',\n", " 'method': 'graphcut',\n", " 'use_boundary_penalties': False,\n", " 'boundary_dilatation_distance': 2,\n", " 'boundary_penalties_weight': 1,\n", " 'modelparams': {\n", " 'type': 'gmmsame',\n", " 'params': {\n", " \"n_components\": 2\n", " }\n", " # \"return_only_object_with_seeds\": True,\n", " # 'fv_type': \"fv_extern\",\n", " # 'fv_extern': fv_function,\n", " # 'adaptation': 'original_data',\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Run\n", "igc = pycut.ImageGraphCut(data, voxelsize=[1, 1, 1], segparams=segparams)\n", "igc.set_seeds(seeds)\n", "igc.run()\n", "\n", "# Show results\n", "colormap = plt.cm.get_cmap('brg')\n", "colormap._init()\n", "colormap._lut[:1:, 3] = 0\n", "\n", "plt.imshow(data[:, :, 10], cmap='gray')\n", "plt.contour(igc.segmentation[:, :, 10], levels=[0.5])\n", "plt.imshow(igc.seeds[:, :, 10], cmap=colormap, interpolation='none')\n", "# plt.savefig(\"gc_example.png\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "a = igc.debug_show_model(start=0, stop=100)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD4CAYAAAAAczaOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAXbUlEQVR4nO3dfYxV9Z3H8fenYK2t2ooySGegsC2tVaxPE6qrId1lqawmxSZqINsKC8k0RrO1Twm2ybY2IcXNrmZNVjdUXMddFzVqw6TqtIo1TY0PHa0tIKWisGWUhbFYpWurDv3uH+c3eBgu8zz3YX6fV3Jzz3zPOff+Dh4/c+b3Ow+KCMzMLA/vqXUDzMysehz6ZmYZceibmWXEoW9mlhGHvplZRibXugGDOemkk2LWrFm1boZNUM8888yrETG12t/r/drG00D7dd2H/qxZs+jq6qp1M2yCkvQ/tfhe79c2ngbar929Y2aWEYe+TXgrVqygqamJuXPnVpo9TVJIOqmvIOlaSdslbZN0Yal+jqRNad5NkpTqR0u6O9WfkjRr3DfKbIQc+jbhLV++nM7OzsPqu3btAjge+G1fTdKpwBLgNGARcLOkSWn2LUAbMCe9FqX6SuC1iPgYcCNw/bhsiNkYcOjbhDd//nymTJlyWP0rX/kKQDdQvhfJYuCuiHgrInYA24F5kqYDx0fEE1Hcu+QO4JLSOu1p+l5gQd9fAWb1xqFvWero6KC5uRngj/1mNQO7Sj93p1pzmu5fP2SdiOgFXgdO7P+dktokdUnq6unpGYvNMBs2h75l580332T16tV897vfrTS70hF6DFAfaJ1DCxFrI6I1IlqnTq36WaJmgEPfMvTiiy+yY8cOzjjjDIDTgRbgWUknUxzBzygt3gK8kuotFeqU15E0GfggsG88t8FspBz6lp3TTz+dvXv3snPnToBNFKF9dkT8L9ABLEln5MymGLB9OiJ2A/slnZv6668ANqSP7ACWpelLgUfD9yy3OuXQtwlv6dKlnHfeeWzbto2WlhbWrVt3xGUjYgtwD/A80AlcFREH0uwrgVspBndfBB5K9XXAiZK2A18FVo3PlpiNXt1fkVtNs1Y9cMR5O9dcXMWW2Fhav379gPMjYla/n1cDqyss1wUcdrJ/RPwJuGxUjRwD3n9tKHykb2aWEYe+mVlGHPpmZhlx6JuZZcShb2aWEZ+9M0Q+M8LMJgIf6ZuZZcShb2aWkUFDX9IMST+RtFXSFklfTvXvSHpZ0nPpdVFpnWE9hMLMzKpjKH36vcDXIuJZSccBz0h6OM27MSL+ubxwv4dQfBh4RNLH06XsfQ+heBJ4kOIhFA9hZmZVMeiRfkTsjohn0/R+YCvv3ke8kpE8hMLMzKpgWGfvpGd/ngU8BZwPXC3pCqCL4q+B1yh+ITxZWq3vYRPvcOSHUPT/njaKvwiYOXPmcJpYEz6zx8waxZAHciUdC9wHXBMRb1B01XwUOBPYDfxL36IVVh/sIRSHFv2wCTOzcTGk0Jd0FEXg3xkR9wNExJ6IOBARfwa+D8xLi4/kIRRmZlYFQzl7RxT3C98aETeU6tNLi30e2JymR/IQCjMzq4Kh9OmfD3wR2CTpuVT7JrBU0pkUXTQ7gS9B8RAKSX0Poejl8IdQ3A4cQ3HWjs/cMTOrokFDPyJ+RuX++AcHWGdYD6EwM7Pq8BW5ZmYZceibmWXEoW9mlhGHvplZRhz6NuGtWLGCpqYm5s599xyCb3zjG5xyyikAp0r6gaQP9c0b7g0D0+nJd6f6U+nKdbO65NC3CW/58uV0dnYeUlu4cCGbN2+G4tTi3wDXwmE3DFwE3CxpUlqt74aBc9JrUaqvBF6LiI8BNwLXj+f2mI2GQ98mvPnz5zNlypRDap/97GeZPPngGctP8u7V4iO5YeBioD1N3wss8G3DrV459M1gBe9eKNgM7CrN67sxYDNHvmHgwXUiohd4HTix/5dIapPUJamrp6dnTDfAbKgc+pa7kymuHL8z/TySGwYO6WaCvpGg1QM/GN2y1d7eDvAh4O9Slw2M7IaBfet0S5oMfBDYNx5tHug23mZD4SN9y1JnZyfXX389wPaIeLM0ayQ3DOwAlqXpS4FHS79EzOqKQ98mvKVLl3Leeeexbds2WlpaWLduHVdffTX79+8H+Hh6xvO/Q3HDQKDvhoGdHH7DwFspBndf5N1xgHXAiZK2A18FVlVt48yGyd07NiEM+PSy9esPq61cuRIASc9HRGt53nBvGBgRfwIuG26bzWrBR/pmZhlx6JuZZcShb2aWEYe+mVlGHPpmZhlx6JuZZcShb2aWEYe+mVlGHPpmZhlx6JuZZcShb2aWEYe+mVlGHPpmZhlx6JuZZcShb2aWEYe+mVlGHPpmZhkZNPQlzZD0E0lbJW2R9OVUnyLpYUkvpPcTSutcK2m7pG2SLizVz5G0Kc27KT1r1MzMqmQoR/q9wNci4pPAucBVkk6leA7oxoiYA2xMP5PmLQFOAxYBN0ualD7rFqCN4mHTc9J8MzOrkkFDPyJ2R8SzaXo/sBVoBhYD7WmxduCSNL0YuCsi3oqIHRQPkZ4naTpwfEQ8EREB3FFax8zMqmBYffqSZgFnAU8B0yJiNxS/GICmtFgzsKu0WneqNafp/vVK39MmqUtSV09Pz3CaaGZmAxhy6Es6FrgPuCYi3hho0Qq1GKB+eDFibUS0RkTr1KlTh9pEs4pWrFhBU1MTc+fOPVjbt28fCxcuBJg72jEpSUdLujvVn0oHR2Z1aUihL+koisC/MyLuT+U9qcuG9L431buBGaXVW4BXUr2lQt1sXC1fvpzOzs5DamvWrGHBggUAmxn9mNRK4LWI+BhwI3D9eG6P2WgM5ewdAeuArRFxQ2lWB7AsTS8DNpTqS9LRz2yK/zmeTl1A+yWdmz7zitI6ZuNm/vz5TJky5ZDahg0bWLasb/cd9ZhUeXzrXmCBz0yzejV5CMucD3wR2CTpuVT7JrAGuEfSSuC3wGUAEbFF0j3A8xRn/lwVEQfSelcCtwPHAA+ll1nV7dmzh+nTpwPFmJSk8pjUk6VF+8ae3uHIY1IHx7EiolfS68CJwKvl75TURvGXAjNnzhzLzTEbskFDPyJ+RuX+eIAFR1hnNbC6Qr0LmHv4GmZ1YyRjUkMar4qItcBagNbW1orjWWbjzVfkWpamTZvG7t27gTEZkzq4jqTJwAeBfePVdrPRcOhblj73uc/R3t7XDT/qMany+NalwKOp39+s7gylT9+soS1dupTHHnuMV199lZaWFq677jpWrVrF5ZdfDkV34+uMbkxqHfCfkrZTHOEvqdKmmQ2bQ98mvPXr11esb9y4EUmbI+KQsanhjklFxJ9IvzTM6p27d8zMMuLQNzPLiEPfzCwjDn0zs4w49M3MMuLQNzPLiEPfzCwjDn0zs4w49M3MMuLQNzPLiEPfzCwjvvfOOJu16oEjztu55uIqtsTMzEf6ZmZZ8ZH+BOO/LMxsIA79OjUe4e1fCGbm0LcR8y8Rs8bjPn0zs4z4SL+GBjpSNjMbDz7SNzPLiEPfzCwjDn0zs4w49C1bN954I8BpkjZLWi/pfZKmSHpY0gvp/YS+5SVdK2m7pG2SLizVz5G0Kc27SZJqsT1mQ+HQtyy9/PLL3HTTTQDPR8RcYBKwBFgFbIyIOcDG9DOSTk3zTwMWATdLmpQ+7hagDZiTXouquClmw+LQt2z19vYCvEfSZOD9wCvAYqA9LdIOXJKmFwN3RcRbEbED2A7MkzQdOD4inoiIAO4orWNWdxz6lqXm5ma+/vWvA3wK2A28HhE/BqZFxG6A9N7Utwqwq/QR3anWnKb7183qkkPfsvTaa6+xYcMGgE3Ah4EPSPrCAKtU6qePAeqHf4DUJqlLUldPT89wm2w2JgYNfUm3SdoraXOp9h1JL0t6Lr0uKs3zYJfVvUceeYTZs2cD9EbEO8D9wF8Ce1KXDel9b1qlG5hR+ogWiu6g7jTdv36YiFgbEa0R0Tp16tSx3ByzIRvKkf7tVB6YujEizkyvB8GDXdY4Zs6cyZNPPglFn76ABcBWoANYlhZbBmxI0x3AEklHS5pNsQ8/nbqA9ks6N33OFaV1zOrOoKEfET8F9g3x8zzYZQ3h05/+NJdeeinAJym6eN4DrAXWAAslvQAsTD8TEVuAe4DngU7gqog4kD7uSuBWiv39ReCh6m2J2fCMpk//akm/St0/fecyj8lgl/s+rRquu+46gC0RMTcivpgOVn4XEQsiYk56P3jAExGrI+KjEfGJiHioVO9Kn/HRiLg6HdiY1aWRhv4twEeBMynOfPiXVB/1YBe479PMbLyMKPQjYk9EHIiIPwPfB+alWaMe7DIzs/EzotDvO7sh+TzQd2aPB7vMzOrYoPfTl7Qe+AxwkqRu4NvAZySdSdFFsxP4EhSDXZL6Brt6OXyw63bgGIqBLg92mZlV2aChHxFLK5TXDbD8amB1hXoXMHdYrTMzszHlK3LNzDLi0Dczy4hD38wsIw59M7OMOPTNzDLi0Dczy4hD38wsIw59M7OMOPTNzDLi0Dczy4hD38wsIw59M7OMOPTNzDLi0Dczy4hD38wsIw59M7OMOPTNzDLi0LfcTZJ0r6RfS9oq6TxJUyQ9LOmF9H5C38KSrpW0XdI2SReW6udI2pTm3ZSeBW1Wdxz6lrsZQGdEnAKcAWwFVgEbI2IOsDH9jKRTgSXAacAi4GZJk9Ln3AK0AXPSa1E1N8JsqBz6lq033ngD4DjSM58j4u2I+D2wGGhPi7UDl6TpxcBdEfFWROwAtgPzJE0Hjo+IJyIigDtK65jVFYe+Zeull14C6AX+Q9IvJN0q6QPAtIjYDZDem9IqzcCu0kd0p1pzmu5fP4SkNkldkrp6enrGfHvMhsKhb9nq7e0FeD9wS0ScBfwfqSvnCCr108cA9UMLEWsjojUiWqdOnTqCFpuNnkPfstXS0gLwdkQ8lUr3AmcDe1KXDel9b5rfTTEGcPAjgFdSvaVC3azuOPQtWyeffDLA25I+kUoLgOeBDmBZqi0DNqTpDmCJpKMlzaYYsH06dQHtl3RuOmvnitI6ZnVlcq0bYFZjvwXulPRe4CXg7ykOhu6RtDLNvwwgIrZIuofiF0MvcFVEHEifcyVwO3AM8FB6mdUdh77l7o8R0VqhvqDSwhGxGlhdod4FzB3jtpmNOXfvmJllxKFvZpYRh76ZWUYc+mZmGRk09CXdJmmvpM2lmm9IZWbWgIZypH87h988yjekMjNrQIOGfkT8FNjXr+wbUpmZNaCR9umPyw2p+vjGVGZm42OsB3JHdUOqgzN8Yyozs3Ex0tD3DanMzBrQSEPfN6QyM2tAg957R9J64DPASZK6gW8Da/ANqczMGs6goR8RS48wyzekMjNrML4i18wsIw59M7OMOPTNzDLi0Dczy0h2T86ateqBWjfBzKxmsgt9G76R/KIcaJ2day4e0+8ys6Fz6FvVOdjNasehb4CD2CwXHsi17En6haQfpmk/IMgmNIe+5W4asLX0sx8QZBOaQ9+y1d3dDfBB4NZS2Q8IsgnNffoNyP3vY+Oaa66B4rbffy6VD3lAkKTyA4KeLC3X9yCgdxjiA4IktVH8RcDMmTNHvwFmI+AjfcvSD3/4Q5qamgDeHOIqo35AkB8OZPXAR/qWpccff5yOjg6A04G7gOMl/RfpAUHpKN8PCLIJx0f6lqXvfe97fX36mygGaB+NiC/gBwTZBOcjfbND+QFBNqE59C17EfEY8Fia/h1+QJBNYO7eMTPLiEPfzCwjDn0zs4w49M3MMuLQNzPLiEPfzCwjDn0zs4w49M3MMuLQNzPLiEPfzCwjDn0zs4w49M3MMuLQNzPLyKhCX9JOSZskPSepK9WmSHpY0gvp/YTS8tdK2i5pm6QLR9t4MzMbnrE40v+riDgzIlrTz6uAjRExB9iYfkbSqRQPqzgNWATcLGnSGHy/mZkN0Xh07ywG2tN0O3BJqX5XRLwVETuA7cC8cfh+MzM7gtGGfgA/lvSMpLZUm5YeIUd6b0r1ZmBXad3uVDuMpDZJXZK6enp6RtlEMzPrM9onZ50fEa9IagIelvTrAZZVhVpUWjAi1gJrAVpbWysuY2ZmwzeqI/2IeCW97wV+QNFds0fSdID0vjct3g3MKK3eArwymu83M7PhGXHoS/qApOP6poHPApuBDmBZWmwZsCFNdwBLJB0taTYwB3h6pN9vZmbDN5runWnADyT1fc5/R0SnpJ8D90haCfwWuAwgIrZIugd4HugFroqIA6NqvZmZDcuIQz8iXgLOqFD/HbDgCOusBlaP9DvNxtKuXbsAPi5pK/BnYG1E/KukKcDdwCxgJ3B5RLwGxbUmwErgAPAPEfGjVD8HuB04BngQ+HJEeDzK6o6vyLVsTZ48GaA7Ij4JnAtcla4nGcm1JrcAbRTdlnPSfLO649C3bE2fPh3gTYCI2A9spTiNeFjXmqQTFo6PiCfS0f0dpXXM6opD3wyQNAs4C3iK4V9r0pym+9f7f4evP7Gac+hb9iQdC9wHXBMRbwy0aIVaDFA/tBCxNiJaI6J16tSpI2us2Sg59C13ogj8OyPi/lQb7rUm3Wm6f92s7jj0LVvp5JqPAFsj4obSrGFda5K6gPZLOlfFOcxXlNYxqyujvQ2DWcN6/PHHAU4E/lrSc6n8TWANw7/W5ErePWXzofQyqzsOfcvWBRdcAPBM6bbgZcO61iQiuoC5Y9pAs3Hg7h0zs4w49M3MMuLQNzPLiEPfzCwjDn0zs4w49M3MMuLQNzPLiEPfzCwjDn0zs4w49M3MMuLQNzPLiEPfzCwjDn0zs4w49M3MMuLQNzPLiEPfzCwjfoiKWZ2ZteqBWjfBJjAf6ZuZZcShb2aWkYbu3hnoz+Cday6uYkvMzBqDj/TNzDLi0Dczy0jVQ1/SIknbJG2XtKra3282XrxvWyOoap++pEnAvwELgW7g55I6IuL5arbDbKw18r7tsbH6Ntb/fao9kDsP2B4RLwFIugtYDNT9/xhmg6jrfXuk5/77moGJp9qh3wzsKv3cDXy6/0KS2oC29OMfJG07wuedBLxaaYauH0Ura+OI29KA6mpbBtkXPjJGXzPovj0W+3UdcRvHxqjaOMC+fcT9utqhrwq1OKwQsRZYO+iHSV0R0ToWDas1b0vDG3Tfnkj7tds4NmrRxmoP5HYDM0o/twCvVLkNZuPB+7Y1hGqH/s+BOZJmS3ovsAToqHIbzMaD921rCFXt3omIXklXAz8CJgG3RcSWUXzkoH8qNxBvSwMb4327Ef793MaxUfU2KuKwLnUzM5ugfEWumVlGHPpmZhlpyNBvtMvdJd0maa+kzaXaFEkPS3ohvZ9Qmndt2rZtki6sTasrkzRD0k8kbZW0RdKXU70ht6fe1Mu+3Qj7bCPsi5LeJ+lpSb9Mbbyu5m2MiIZ6UQySvQj8BfBe4JfAqbVu1yBtng+cDWwu1f4JWJWmVwHXp+lT0zYdDcxO2zqp1ttQavd04Ow0fRzwm9TmhtyeenrV077dCPtsI+yLFNdvHJumjwKeAs6tZRsb8Uj/4OXuEfE20He5e92KiJ8C+/qVFwPtaboduKRUvysi3oqIHcB2im2uCxGxOyKeTdP7ga0UV6M25PbUmbrZtxthn22EfTEKf0g/HpVeUcs2NmLoV7rcvblGbRmNaRGxG4qdF2hK9YbZPkmzgLMojl4afnvqQL3/W9Xtf+N63hclTZL0HLAXeDgiatrGRgz9Id3KoYE1xPZJOha4D7gmIt4YaNEKtbrbnjrRqP9WNW13ve+LEXEgIs6kuEp7nqS5Ayw+7m1sxNCfKJe775E0HSC97031ut8+SUdR/E92Z0Tcn8oNuz11pN7/reruv3Ej7YsR8XvgMWBRLdvYiKE/US537wCWpellwIZSfYmkoyXNBuYAT9egfRVJErAO2BoRN5RmNeT21Jl637fr6r9xI+yLkqZK+lCaPgb4G+DXNW3jeI+wj9OI+EUUI/UvAt+qdXuG0N71wG7gHYrf5CuBE4GNwAvpfUpp+W+lbdsG/G2t299vWy6g+HPzV8Bz6XVRo25Pvb3qZd9uhH22EfZF4FPAL1IbNwP/mOo1a6Nvw2BmlpFG7N4xM7MRcuibmWXEoW9mlhGHvplZRhz6ZmYZceibmWXEoW9mlpH/B6eHm6sYLu8dAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "igc.debug_show_reconstructed_similarity()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Other resources\n", "\n", "\n", "http://cmp.felk.cvut.cz/~smidm/python-packages-for-graph-cuts-on-images.html\n", "\n", "http://docs.opencv.org/3.1.0/d8/d83/tutorial_py_grabcut.html" ] }, { "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.7" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 1 }