Skip to content

Instantly share code, notes, and snippets.

@aganders3 aganders3/Inpainting.ipynb
Last active Aug 29, 2015

Embed
What would you like to do?
{
"worksheets": [
{
"cells": [
{
"metadata": {},
"cell_type": "code",
"input": "%pylab inline\nfrom scipy.ndimage import filters, morphology",
"prompt_number": 3,
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "Populating the interactive namespace from numpy and matplotlib\n"
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "markdown",
"source": "##Pseudocode for Inpainting\n δΩi = boundary of region to inpaint\n δΩ = δΩi\n while (δΩ not empty)\n {\n p = pixel of δΩ closest to δΩi\n inpaint p using Eqn.2\n advance δΩ into Ω\n }\n \nThis pesuedocode and some specific code comes from:\n\n Telea, A. (2004). An Image Inpainting Technique Based on the Fast Marching Method. Journal of Graphics Tools, 9(1), 23–34. doi:10.1080/10867651.2004.10487596"
},
{
"metadata": {},
"cell_type": "code",
"input": "def neighbors(i, j, dims):\n nhood = []\n for ii,jj in zip((1,0,-1,0),(0,-1,0,1)):\n if i-ii >= 0 and i-ii < dims[0] \\\n and j-jj >=0 and j-jj < dims[1]:\n nhood.append((i-ii,j-jj))\n return nhood",
"prompt_number": 4,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "code",
"input": "def solveEikonal(pflag,T,i1,j1,i2,j2):\n sol = 1e6\n BAND, KNOWN, INSIDE = 1,2,3\n if i1 > 0 and i1 < pflag.shape[0] \\\n and j1 > 0 and j1 < pflag.shape[1] \\\n and i2 > 0 and i2 < pflag.shape[0] \\\n and j2 > 0 and j2 < pflag.shape[1]:\n if pflag[i1,j1] == KNOWN:\n if pflag[i2,j2] == KNOWN:\n r = np.sqrt(2 - (T[i1,j1] - T[i2,j2])**2)\n s = (T[i1,j1] + T[i2,j2] - r) / 2\n if s >= T[i1,j1] and s >= T[i2,j2]:\n sol = s\n else:\n s += r\n if s >= T[i1,j1] and s >= T[i2,j2]:\n sol = s\n else:\n sol = 1 + T[i1,j1]\n elif pflag[i2,j2] == KNOWN:\n sol = 1 + T[i2,j2]\n \n return sol",
"prompt_number": 5,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "code",
"input": "def inpaint(I, pflag, T, gradT, i, j):\n Ia = 0\n s = 0\n n = 5\n BAND, KNOWN, INSIDE = 1,2,3\n for ii in range(-n,n,1):\n for jj in range(-n,n,1):\n k, l = i+ii, j+jj\n if k >= 0 and k < I.shape[0] and l >= 0 and l < I.shape[1]:\n if pflag[k,l] == KNOWN:\n r = np.asarray((ii,jj))\n r_ = np.sqrt(np.sum(r**2))\n dir_ = np.abs(np.dot(r, -gradT) / r_)\n if dir_ == 0:\n dir_ = 1\n dst_ = 1 / (r_**2)\n lev_ = 1 / (1 + np.abs(T[k,l] - T[i,j]))\n w = dir_*dst_*lev_\n gradI = np.zeros(2)\n \n if k-1 >= 0 and k+1 < I.shape[0] \\\n and l-1 >= 0 and l+1 < I.shape[1] \\\n and pflag[k+1,l] == KNOWN and pflag[k,l+1] == KNOWN \\\n and pflag[k-1,l] == KNOWN and pflag[k,l-1] == KNOWN:\n gradI = np.asarray((I[k+1,l] - I[k-1,l], I[k,l+1] - I[k,l-1]))\n \n Ia += w * (I[k,l] - np.dot(gradI, r))\n s += w\n if s != 0:\n I[i,j] = Ia / s",
"prompt_number": 6,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "code",
"input": "def fast_marching(pixel_flag, I=[], Tinit=[], Tlimit=-1):\n if np.any(Tinit):\n T = Tinit\n else:\n T = np.zeros(pixel_flag.shape)\n \n if np.any(I):\n paint = True\n I_ = I.copy()\n else:\n paint = False\n \n BAND, KNOWN, INSIDE = 1,2,3\n while np.sum(pixel_flag == BAND) > 0:\n T_ = T.copy()\n T_[pixel_flag != BAND] = np.nan\n p = np.nanargmin(T_) # STEP 1\n i,j = np.unravel_index(p, T.shape)\n pixel_flag[i,j] = KNOWN\n for k,l in neighbors(i, j, pixel_flag.shape):\n # march the band\n if pixel_flag[k,l] == INSIDE:\n pixel_flag[k,l] = 1 # STEP 2\n if paint:\n inpaint(I_, pixel_flag, T, gradT[:,k,l], k, l) # STEP 3 \n if pixel_flag[k,l] != KNOWN: # STEP 4\n # solve Eikonal equation |delT| = 1 for four \"quadrants\"\n T[k,l] = min(solveEikonal(pixel_flag,T,k-1,l,k,l-1),\n solveEikonal(pixel_flag,T,k+1,l,k,l-1),\n solveEikonal(pixel_flag,T,k-1,l,k,l+1),\n solveEikonal(pixel_flag,T,k+1,l,k,l+1))\n pixel_flag[k,l] = 1 # STEP 5\n if Tlimit > 0 and T[i,j] > Tlimit:\n break\n \n if paint:\n return I_\n else:\n return T",
"prompt_number": 7,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "code",
"input": "X,Y = np.meshgrid(np.linspace(-1,1,128), np.linspace(-1,1,128))\nfmap = np.sqrt(X**2 + Y**2) + X + Y\nmask = (np.sqrt(X**2+Y**2) < .5) - (np.sqrt(X**2+Y**2) < .4)\n\nfig, axs = plt.subplots(1,3)\naxs[0].imshow(fmap, cmap='gray')\naxs[1].imshow(mask)\naxs[2].imshow((1-mask)*filters.median_filter(fmap,size=3), cmap='gray')\naxs[0].axis('off'); axs[1].axis('off'); axs[2].axis('off')\nplt.show()\n\nfmap = (mask==0)*filters.median_filter(fmap,size=3)",
"prompt_number": 8,
"outputs": [
{
"output_type": "display_data",
"metadata": {},
"png": "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\n",
"text": "<matplotlib.figure.Figure at 0x1089598d0>"
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "code",
"input": "band = morphology.binary_dilation(mask) - mask\npixel_flag = band + (1 - mask - band)*2 + (mask)*3 # BAND = 1, KNOWN = 2, INSIDE = 3\nplt.imshow(pixel_flag)\nplt.colorbar()\nplt.axis('off')\nplt.show()",
"prompt_number": 9,
"outputs": [
{
"output_type": "display_data",
"metadata": {},
"png": "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\nAAAAAElFTkSuQmCC\n",
"text": "<matplotlib.figure.Figure at 0x1088d4bd0>"
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "markdown",
"source": "First we \"march\" the narrow band out, then in, both steps without inpainting. Combining these steps gives us an approximation of the signed distance function from the initial boundary."
},
{
"metadata": {},
"cell_type": "code",
"input": "band = morphology.binary_dilation(mask) - mask\n\n# reverse KNOWN and INSIDE for initial marching OUT\npixel_flag = band + (1 - mask - band)*3 + (mask)*2 # BAND = 1, KNOWN = 2, INSIDE = 3\nT_out = fast_marching(pixel_flag, Tlimit=5)\n\n# now march all the way IN\npixel_flag = band + (1 - mask - band)*2 + (mask)*3 # BAND = 1, KNOWN = 2, INSIDE = 3\nT_in = fast_marching(pixel_flag)",
"prompt_number": 10,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "code",
"input": "T = T_in - T_out\n# T[1-mask-band] = -T_out[1-mask-band]\n\nT = filters.uniform_filter(T, size=3)\nT = filters.uniform_filter(T, size=3)\n\ngradT = np.asarray(np.gradient(T))\n\nTlim = 10\nplt.imshow(T,vmax=Tlim)\nplt.colorbar()\nplt.axis('off')\nplt.show()",
"prompt_number": 11,
"outputs": [
{
"output_type": "display_data",
"metadata": {},
"png": "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\nSUVORK5CYII=\n",
"text": "<matplotlib.figure.Figure at 0x1091b3490>"
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Now march in, this time painting in the pixels in the order they are reached."
},
{
"metadata": {},
"cell_type": "code",
"input": "pixel_flag = band + (1 - mask - band)*2 + (mask)*3 # BAND = 1, KNOWN = 2, INSIDE = 3\nI = fast_marching(pixel_flag, fmap, T, Tlimit=Tlim)",
"prompt_number": 12,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "code",
"input": "fig, axs = plt.subplots(1,3)\naxs[0].imshow(fmap)\naxs[1].imshow(mask, cmap='gray')\naxs[2].imshow(I, vmin=np.min(fmap), vmax=np.max(fmap))\naxs[0].axis('off'); axs[1].axis('off'); axs[2].axis('off')\nplt.show()",
"prompt_number": 13,
"outputs": [
{
"output_type": "display_data",
"metadata": {},
"png": "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\nQmCC\n",
"text": "<matplotlib.figure.Figure at 0x108fc4110>"
}
],
"language": "python",
"trusted": true,
"collapsed": false
},
{
"metadata": {},
"cell_type": "markdown",
"source": "------"
},
{
"metadata": {},
"cell_type": "code",
"input": "",
"prompt_number": 13,
"outputs": [],
"language": "python",
"trusted": true,
"collapsed": false
}
],
"metadata": {}
}
],
"metadata": {
"name": "",
"signature": "sha256:baaa8e7dc23de04db764d0d51248e27b7f1d4259f5319b9e91eba2c3d3276bd6"
},
"nbformat": 3
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.