{"nbformat_minor": 0, "worksheets": [{"cells": [{"source": ["Non Local Means\n", "===============\n", "\n*Important:* Please read the [installation page](http://gpeyre.github.io/numerical-tours/installation_matlab/) for details about how to install the toolboxes.\n", "$\\newcommand{\\dotp}[2]{\\langle #1, #2 \\rangle}$\n", "$\\newcommand{\\enscond}[2]{\\lbrace #1, #2 \\rbrace}$\n", "$\\newcommand{\\pd}[2]{ \\frac{ \\partial #1}{\\partial #2} }$\n", "$\\newcommand{\\umin}[1]{\\underset{#1}{\\min}\\;}$\n", "$\\newcommand{\\umax}[1]{\\underset{#1}{\\max}\\;}$\n", "$\\newcommand{\\umin}[1]{\\underset{#1}{\\min}\\;}$\n", "$\\newcommand{\\uargmin}[1]{\\underset{#1}{argmin}\\;}$\n", "$\\newcommand{\\norm}[1]{\\|#1\\|}$\n", "$\\newcommand{\\abs}[1]{\\left|#1\\right|}$\n", "$\\newcommand{\\choice}[1]{ \\left\\{ \\begin{array}{l} #1 \\end{array} \\right. }$\n", "$\\newcommand{\\pa}[1]{\\left(#1\\right)}$\n", "$\\newcommand{\\diag}[1]{{diag}\\left( #1 \\right)}$\n", "$\\newcommand{\\qandq}{\\quad\\text{and}\\quad}$\n", "$\\newcommand{\\qwhereq}{\\quad\\text{where}\\quad}$\n", "$\\newcommand{\\qifq}{ \\quad \\text{if} \\quad }$\n", "$\\newcommand{\\qarrq}{ \\quad \\Longrightarrow \\quad }$\n", "$\\newcommand{\\ZZ}{\\mathbb{Z}}$\n", "$\\newcommand{\\CC}{\\mathbb{C}}$\n", "$\\newcommand{\\RR}{\\mathbb{R}}$\n", "$\\newcommand{\\EE}{\\mathbb{E}}$\n", "$\\newcommand{\\Zz}{\\mathcal{Z}}$\n", "$\\newcommand{\\Ww}{\\mathcal{W}}$\n", "$\\newcommand{\\Vv}{\\mathcal{V}}$\n", "$\\newcommand{\\Nn}{\\mathcal{N}}$\n", "$\\newcommand{\\NN}{\\mathcal{N}}$\n", "$\\newcommand{\\Hh}{\\mathcal{H}}$\n", "$\\newcommand{\\Bb}{\\mathcal{B}}$\n", "$\\newcommand{\\Ee}{\\mathcal{E}}$\n", "$\\newcommand{\\Cc}{\\mathcal{C}}$\n", "$\\newcommand{\\Gg}{\\mathcal{G}}$\n", "$\\newcommand{\\Ss}{\\mathcal{S}}$\n", "$\\newcommand{\\Pp}{\\mathcal{P}}$\n", "$\\newcommand{\\Ff}{\\mathcal{F}}$\n", "$\\newcommand{\\Xx}{\\mathcal{X}}$\n", "$\\newcommand{\\Mm}{\\mathcal{M}}$\n", "$\\newcommand{\\Ii}{\\mathcal{I}}$\n", "$\\newcommand{\\Dd}{\\mathcal{D}}$\n", "$\\newcommand{\\Ll}{\\mathcal{L}}$\n", "$\\newcommand{\\Tt}{\\mathcal{T}}$\n", "$\\newcommand{\\si}{\\sigma}$\n", "$\\newcommand{\\al}{\\alpha}$\n", "$\\newcommand{\\la}{\\lambda}$\n", "$\\newcommand{\\ga}{\\gamma}$\n", "$\\newcommand{\\Ga}{\\Gamma}$\n", "$\\newcommand{\\La}{\\Lambda}$\n", "$\\newcommand{\\si}{\\sigma}$\n", "$\\newcommand{\\Si}{\\Sigma}$\n", "$\\newcommand{\\be}{\\beta}$\n", "$\\newcommand{\\de}{\\delta}$\n", "$\\newcommand{\\De}{\\Delta}$\n", "$\\newcommand{\\phi}{\\varphi}$\n", "$\\newcommand{\\th}{\\theta}$\n", "$\\newcommand{\\om}{\\omega}$\n", "$\\newcommand{\\Om}{\\Omega}$\n"], "metadata": {}, "cell_type": "markdown"}, {"source": ["This numerical tour study image denoising using\n", "non-local means. This algorithm has been\n", "introduced for denoising purposes in [BuaCoMoA05](#biblio)"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "text": ["[\bWarning: Function isrow has the same name as a MATLAB builtin. We suggest you\n", "rename the function to avoid a potential name conflict.]\b \n", "[\b> In path at 110\n", " In addpath at 87\n", " In pymat_eval at 38\n", " In matlabserver at 27]\b \n", "[\bWarning: Function isrow has the same name as a MATLAB builtin. We suggest you\n", "rename the function to avoid a potential name conflict.]\b \n", "[\b> In path at 110\n", " In addpath at 87\n", " In pymat_eval at 38\n", " In matlabserver at 27]\b \n"], "output_type": "display_data"}], "prompt_number": 2, "cell_type": "code", "language": "python", "metadata": {}, "input": ["addpath('toolbox_signal')\n", "addpath('toolbox_general')\n", "addpath('solutions/denoisingadv_6_nl_means')"]}, {"source": ["Patches in Images\n", "-----------------\n", "This numerical tour is dedicated to the study of the structure of patches\n", "in images.\n", "\n", "\n", "Size $N = n \\times n$ of the image."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 3, "cell_type": "code", "language": "python", "metadata": {}, "input": ["n = 128;"]}, {"source": ["We load a noisy image $f_0\\in \\RR^N$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 4, "cell_type": "code", "language": "python", "metadata": {}, "input": ["c = [100 200];\n", "f0 = load_image('lena');\n", "f0 = rescale( crop(f0,n, c) );"]}, {"source": ["Display $f_0$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\nSUVORK5CYII=\n", "output_type": "display_data"}], "prompt_number": 5, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "imageplot(f0);"]}, {"source": ["Noise level $\\si$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 6, "cell_type": "code", "language": "python", "metadata": {}, "input": ["sigma = .04;"]}, {"source": ["Generate a noisy image $f=f_0+\\epsilon$ where $\\epsilon \\times\n", "\\Nn(0,\\si^2\\text{Id}_N)$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 7, "cell_type": "code", "language": "python", "metadata": {}, "input": ["f = f0 + randn(n,n)*sigma;"]}, {"source": ["Display $f$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAIAAADOgk3lAAAACXBIWXMAAAsSAAALEgHS3X78AAAA\nIXRFWHRTb2Z0d2FyZQBBcnRpZmV4IEdob3N0c2NyaXB0IDguNTRTRzzSAAAgAElEQVR4nOzdV9Nt\nx1X2/WnCQ8452jgp52jJyAkXKgM2hiqb4KIKOPIhX4YPwClFYRe4oEjGxrIlWWFvxS1LsmxkMpic\ng9+Dq+5fzWe0ZfZNFeupWe91Hc177Tm7R4/utVf3f44e/bLPfe5zW1VVVVUdTV/0/9qAqqqqqvqf\nqD9gVVVV1SHVH7CqqqrqkOoPWFVVVXVI9QesqqqqOqT6A1ZVVVUdUv0Bq6qqqg6p/oBVVVVVh1R/\nwKqqqqpDqj9gVVVV1SHVH7CqqqrqkOoPWFVVVXVI9QesqqqqOqT6A1ZVVVUdUv0Bq6qqqg6p/oBV\nVVVVh1R/wKqqqqpDqj9gVVVV1SHVH7CqqqrqkOoPWFVVVXVI9QesqqqqOqT6A1ZVVVUdUv0Bq6qq\nqg6p/oBVVVVVh1R/wKqqqqpDqj9gVVVV1SHVH7CqqqrqkOoPWFVVVXVI9QesqqqqOqT6A1ZVVVUd\nUv0Bq6qqqg6pL/l/bcD/v/Se97wnF//4j/+Yi6/5mq/Ztu0rv/Ir8+enPvWpXHzbt31bLv75n/95\n27Yv+7Ivy5/u/OM//uNcfMmXfMn+8y/90i/NxV/+5V/m4ru/+7v3Nf7pn/5pLr78y798X8JXf/VX\n58//83/+z7jzu77ru7Zt+8M//MP8+R3f8R25+OIv/uJ9c/7lX/5lf//ehtzpBka+/OUvz8WDDz64\nb0XcsjcyRX3t137tKOErvuIrcpHCVeHBz372s7mID9n8Td/0Tbn48z//81z867/+67Ztr3zlK/Pn\nn/3Zn+Xi3//933ORvviiL/qi8flrX/vafVFa8W//9m+jiq/6qq/a26YoVv3N3/zN3oHD+G3bnnvu\nuW3bvvEbv3Ff4LZt//Ef/7G/U3ezQQn+6Vu/9Vu3bXv++efzpyHnhs997nPbtn3nd35n/vyv//qv\nXGTAbNv2J3/yJ9uus4gH/u7v/m5vG2P0Yxr+R3/0R/lTp/BtOprH/umf/ikX6Qu1G7R/9Vd/NYrK\ns+vYY0P6XY0c9bd/+7e5SHfoC98U3Zrafc7av//7v99b63N+0Jy46Nd//de36jzqCqyqqqo6pPoD\n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\n", "output_type": "display_data"}], "prompt_number": 8, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "imageplot(clamp(f));"]}, {"source": ["We denote $w$ to be the half width of the patches,\n", "and $w_1=2w+1$ the full width."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 9, "cell_type": "code", "language": "python", "metadata": {}, "input": ["w = 3;\n", "w1 = 2*w+1;"]}, {"source": ["We set up large $(n,n,w_1,w_1)$ matrices to index the the X and Y\n", "position of the pixel to extract.\n", "\n", "location of pixels"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 10, "cell_type": "code", "language": "python", "metadata": {}, "input": ["[Y,X] = meshgrid(1:n,1:n);"]}, {"source": ["offsets"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 11, "cell_type": "code", "language": "python", "metadata": {}, "input": ["[dY,dX] = meshgrid(-w:w,-w:w);"]}, {"source": ["location of pixels to extract"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 12, "cell_type": "code", "language": "python", "metadata": {}, "input": ["dX = reshape(dX, [1 1 w1 w1]);\n", "dY = reshape(dY, [1 1 w1 w1]);\n", "X = repmat(X, [1 1 w1 w1]) + repmat(dX, [n n 1 1]);\n", "Y = repmat(Y, [1 1 w1 w1]) + repmat(dY, [n n 1 1]);"]}, {"source": ["We handle boundary condition by reflexion"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 13, "cell_type": "code", "language": "python", "metadata": {}, "input": ["X(X<1) = 2-X(X<1); Y(Y<1) = 2-Y(Y<1);\n", "X(X>n) = 2*n-X(X>n); Y(Y>n) = 2*n-Y(Y>n);"]}, {"source": ["Patch extractor operator"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 14, "cell_type": "code", "language": "python", "metadata": {}, "input": ["patch = @(f)f(X + (Y-1)*n);"]}, {"source": ["Define the patch matrix $P$ of size $(n,n,w_1,w_1)$.\n", "Each |P(i,j,:,:)| represent an $(w_1,w_1)$ patch extracted around pixel\n", "$(i,j)$ in the image."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 15, "cell_type": "code", "language": "python", "metadata": {}, "input": ["P = patch(f);"]}, {"source": ["Display some example of patches"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\n71dddVVQp02bFtQTTzyxlDp06BAcxrU2DRgwIKiHHXZYUOOXDVq1alVKO3fuDA5POOGEoK5Zsyao\n8feyU/AJDICUDBgAKRkwAFIyYACkZMAASMmAAZCSAQMgJQMGQEoGDICUvMRRadeuXVCDL7rfe++9\nweETTzwR1Oeffz6oU6ZMKaVzzz03OKxZd911VykNGzYsOOzWrVtQV6xYEdTbbrutlOLXDebPnx/U\nkSNHBrWKmjdvXkotW7YMDkeMGBHU3bt3B7Wurq6UVq9eHRxu3749qN/4xjeCWpuWLl0a1IMPPjio\nwd/nxxxzTHD4/vvvB/Xoo48OahPgExgAKRkwAFIyYACkZMAASMmAAZCSAQMgJQMGQEoGDICUDBgA\nKXmJo3LIIYcE9eyzzy6ll19+OThctWpVUBcuXBjU9u3bl9Ktt94aHD766KNBraJ58+aV0jXXXBMc\nxg8NLF68OKjBzyr+Mf785z8P6n333RfUKvriiy9K6Y477ggOzz///KA+88wzQZ00aVIpnX766cHh\noEGDglqb4j8rjjjiiKC+/vrrQT311FNLKX5uplevXkFtbGwMahPgExgAKRkwAFIyYACkZMAASMmA\nAZCSAQMgJQMGQEoGDICUDBgAKXmJo9KmTZugPvnkk6XUunXr4LBnz55BHTFiRFCfe+65Uurfv39w\nWLM6d+5cSosWLQoOv/rqq6C2bds2qM8//3wpnXnmmcFhfX19UGtW8GpMXV1dcDh27Nigxn+BLrro\nolK64YYbgsMlS5YEtTbFr2k0NDQENf57de3ataV02GGHBYebNm0KapPnExgAKRkwAFIyYACkZMAA\nSMmAAZCSAQMgJQMGQEoGDICUfJE5+q/dVyqVxx57rJTuv//+4PDoo48O6q5du4K6b9++UtqwYUNw\nWLNatmxZSh06dAgO46+Zz5o1K6i33XZbKe3duzc47N69e1BrVvB/aubMmcHhIYccEtTp06cHtW/f\nvqX0v/k++IABAw749v9O8H+2Uql06dIlqDt37gzq/PnzSyn+BvRBBx0U1KFDhwa1sbExqCn4BAZA\nSgYMgJQMGAApGTAAUjJgAKRkwABIyYABkJIBAyAlAwZASnVN4MvYAPw/5BMYACkZMABSMmAApGTA\nAEjJgAGQkgEDICUDBkBKBgyAlAwYACkZMABSMmAApGTAAEjJgAGQkgEDICUDBkBKBgyAlAwYACkZ\nMABSMmAApGTAAEjJgAGQkgEDICUDBkBKBgyAlAwYACkZMABSalHt30D1HXvssUHt3bt3KV166aXB\n4c033xzU733ve0G95JJLSmnlypXB4Z133hnUKrrmmmtKaefOncHhxx9/HNSGhoagzpw5s5ReeeWV\n4HDatGlBfeihh4JaRVdffXUprVixIjiM/xG47777gvrhhx+W0re+9a3gcOnSpUHt169fUKvl+uuv\nD+q+ffuC2qJF9Iftli1bSum0004LDh944IGgrlu3LqiNjY1BTcEnMABSMmAApGTAAEjJgAGQkgED\nICUDBkBKBgyAlAwYACn5InP0HdtK+I3Xhx9+ODjs1atXUONv73722WeldOaZZwaHNSv41upJJ50U\nHLZv3z6on3zySVDHjx9fSvFXlePvnNasZ555ppQGDBgQHJ5yyilBjb9L3rJly1KKv0W7Z8+eoNam\n5s2bB3Xr1q1B7du3b1A7depUStu3bw8Oe/ToEdTa/D74f5BPYACkZMAASMmAAZCSAQMgJQMGQEoG\nDICUDBgAKRkwAFIyYACklPLFgf+snj17BnXcuHGldN555wWH9fX1QT3iiCOCGrziMWrUqOAwfvug\nis4555xSateuXXAYvIRSqVR69+4d1CFDhpTSU089FRxee+21Qa1Zw4YNK6UlS5YEhytWrDjg2qZN\nm1J6//33g8PDDjssqNOnTw9qtZx99tlBHThwYFB/+ctfBvWMM84opcmTJweH8Z8zxx9/fFCbAJ/A\nAEjJgAGQkgEDICUDBkBKBgyAlAwYACkZMABSMmAApGTAAEjJSxyV5cuXBzV4lKF79+7BYfzQwG9/\n+9ugzp49u5Tuuuuu4LBmHXnkkaW0YMGC4LBLly5B/elPfxrURx99tJTiBz6CJy0qlcro0aODWkXv\nvfdeKcWPRLz44otBnTJlSlCbN29eShdccEFw+Le//S2otSn+h/qll14Kavygxh133FFKhx56aHAY\n/Pwrlcrjjz8e1EmTJgU1BZ/AAEjJgAGQkgEDICUDBkBKBgyAlAwYACkZMABSMmAApGTAAEjJSxyV\nvXv3BvXCCy8spf379weHn3zySVCvuOKKoAaPFGzcuDE4rFmzZs0qpfixgOnTpwd11apVQX3qqadK\nKf4xNmuW8l/s6uvrS+mggw4KDn/4wx8G9Y033gjq0KFDS2nFihXBYdu2bYNam1q3bh3UG2+8Majz\n588P6kknnVRKK1euPODfUrdu3YLaBKT8BxUADBgAKRkwAFIyYACkZMAASMmAAZCSAQMgJQMGQEq+\nyFz54x//GNSxY8eW0j333BMcPvLII0HdtGlTULds2VJK77zzTnDYr1+/oFZRq1atSunggw8ODocP\nHx7Ut956K6jB15w3b94cHB5//PFBrVkLFy4spd27dweH69evD+rFF18c1D179pRS/E3/Tz/9NKi1\nKf7bJv7G94IFC4K6dOnSUtq2bVtweM455wS1Y8eOQW0CfAIDICUDBkBKBgyAlAwYACkZMABSMmAA\npGTAAEjJgAGQkgEDICUvcVQ6deoU1O9+97ulFLwuUQlf06hUKpMmTQrq8uXLS+n3v/99cFizOnfu\nXErdu3cPDk877bSgDh48OKgDBgwopb179waHc+fODWrNuv/++0upWbPoX1VXrFgR1K+++iqoweMU\na9euDQ7r6uqCWpu6dOkS1A0bNgS1RYvoD9tBgwaVUvz4zl/+8pegXnfddUFtAnwCAyAlAwZASgYM\ngJQMGAApGTAAUjJgAKRkwABIyYABkJIBAyClusbGxmr/HgDg3+YTGAApGTAAUjJgAKRkwABIyYAB\nkJIBAyAlAwZASgYMgJQMGAApGTAAUjJgAKRkwABIyYABkJIBAyAlAwZASgYMgJQMGAApGTAAUjJg\nAKRkwABIyYABkJIBAyAlAwZASgYMgJQMGAApGTAAUjJgAKRkwABIyYABkJIBAyAlAwZASgYMgJQM\nGAApGTAAUjJgAKRkwABIyYABkJIBAyAlAwZASgYMgJQMGAApGTAAUjJgAKRkwABIyYABkJIBAyCl\n/wLgFNmn6Er4VwAAAABJRU5ErkJggg==\n", "output_type": "display_data"}], "prompt_number": 16, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "for i=1:16\n", " x = floor( rand*(n-1)+1 );\n", " y = floor( rand*(n-1)+1 );\n", " imageplot( squeeze(P(x,y,:,:)), '', 4,4,i );\n", "end"]}, {"source": ["Dimensionality Reduction with PCA\n", "---------------------------------\n", "Since NL-means type algorithms require the computation of many distances\n", "between patches, it is advantagous to reduce the dimensionality of the\n", "patch while keeping as much as possible of information.\n", "\n", "\n", "Target dimensionality $d$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 17, "cell_type": "code", "language": "python", "metadata": {}, "input": ["d = 25;"]}, {"source": ["A linear dimensionality reduction is obtained by Principal Component\n", "Analysis (PCA) that projects the data on a small number of leading\n", "direction of the coveriance matrix of the patches.\n", "\n", "\n", "Turn the patch matrix into an |(w1*w1,n*n)| array, so that each |P(:,i)|\n", "is a |w1*w1| vector representing a patch."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 18, "cell_type": "code", "language": "python", "metadata": {}, "input": ["resh = @(P)reshape(P, [n*n w1*w1])';"]}, {"source": ["operator to remove the mean of the patches to each patch."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 19, "cell_type": "code", "language": "python", "metadata": {}, "input": ["remove_mean = @(Q)Q - repmat(mean(Q), [w1*w1 1]);"]}, {"source": ["Compute the mean and the covariance of the points cloud representing the\n", "patches."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 20, "cell_type": "code", "language": "python", "metadata": {}, "input": ["P1 = remove_mean(resh(P));\n", "C = P1*P1';"]}, {"source": ["Extract the eigenvectors, sorted by decreasing amplitude"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 21, "cell_type": "code", "language": "python", "metadata": {}, "input": ["[V,D] = eig(C); D = diag(D); \n", "[D,I] = sort(D, 'descend'); V = V(:,I);"]}, {"source": ["Display the decaying amplitude of the eigenvalues."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAIAAADOgk3lAAAACXBIWXMAAAsSAAALEgHS3X78AAAA\nIXRFWHRTb2Z0d2FyZQBBcnRpZmV4IEdob3N0c2NyaXB0IDguNTRTRzzSAAAMwElEQVR4nO3d0VLb\nvBqGUesf7v+WtQ+88bh2CAYS63vttQ46iaalGgN5kKKE1nufACDNf6MnAAC/IWAARBIwACIJGACR\nBAyASAIGQCQBAyCSgAEQScAAiCRgAEQSMAAiCRgAkQQMgEgCBkAkAQMgkoABEEnAAIgkYABEEjAA\nIgkYAJEEDIBIAgZAJAEDIJKAARBJwACIJGAARBIwACIJGACRBAyASAIGQCQBAyDSx+gJvFdr0zS1\n0bMAyNN7Hz2Fb1w8YNPUTv4stNaKfNbrzGSqNJk6M5kqTabOTKZKk6kzk+n0ybQW8KO/LUQAIgkY\nAJEEDIBIhXZ436G1s58DA7iAUs//fcUKDIBIAgZApOsHrPcp4TgoAD9z/YABcEkCBkAkAQMgkoAB\nEEnAAIgkYABEqv5u9MurwZe3Rl5eHH5kBICrKh2wJUjrNzWZbx8ZWT7O/FIwUQO4krpbiBHvxAXA\nKKVXYC/xuYzr8w1RBHgo4pdYrhUN2Hwd13/+2udTaNIF8Mz6QTIiZkW3EPunyZoJgEeKrsA25jMa\ny+2DIwBcWPWALSnaN+nICABXVXQL8eX8UhWAi7lLwAC4GAEDIJKAARBJwACIJGAARBIwACIJGACR\nbhQwLwUDuJIbBQyAKxEwACIJGACRBAyASAIGQCQBAyDSvQLmJD3AZdwrYABchoABEEnAAIgkYABE\nEjAAIgkYAJEEDIBItwuYl4IBXMPtAgbANQgYAJEEDIBIAgZAJAEDIJKAARDpjgFzkh7gAu4YMAAu\nQMAAiCRgAET6GD2BL7XP56l67+u7+5H57sMRAK6qbsCmVajmG+ssLYPL7f3I6fMF4Dx1txD3BWqt\nNccHAZimqfgKbJOrzYLsLx8EgI24FULpgK2f6/p1eB7+w/mlYFoGsNg8TTNwJgcV3ULcXLuISwnA\nmYquwOZDGcvtaXfCcP8X9iMAXFjRgE27CO2bdGQEgKsquoUIAM8JGACRBAyASPcNmF+qAhDtvgED\nIJqAARBJwACIJGAARBIwACIJGACRBAyASAIGQCQBAyCSgAEQScAAiCRgAEQSMAAiCRgAkQQMgEgC\nBkAkAQMg0q0D5pcyA+S6dcAAyCVgAEQSMAAiCRgAkQQMgEgCBkAkAQMgkoABEEnAAIgkYABEEjAA\nIgkYAJE+Rk/gS+3zfXZ77/u7B0cAuKq6AZv+Tde6Ur33+c/nIyOmDMBJ6m4hKhAAT5RegbVX/Lau\nzQfRRYCHXvKQe6bSAds8+/WXDwLAc+tHy4iYFd1CjLh2AAxUdAU2H8pYbk+7E4b7v7AfOfYfTa1N\nFmkAcYoGbNpFaN+kIyMAXFXRLUQAeE7AAIgkYABEEjAAIgkYAJEEDIBIAgZAJAEDIJKAARBJwACI\nJGAARBIwACIJGACRBAyASAIGQCQBAyCSgAEQScCm3qfWRk8CgB8SMAAiCRgAkQQMgEgCBkAkAQMg\nkoABEEnAAIgkYABEEjAAIgkYAJEEDIBIAgZAJAEDIJKAARBJwACIJGAARPoYPYEvtc/fMtl7X9/d\nj8x3H44AcFV1AzatQjXfWGdpGVxu70dOny8A56kbsH2B5gXWT8u0Xrp99c97n1qbJA+4s82jZX11\nAzZbr6U2C7KDLMUAjtjscg2cyUF1A7ZZb+kQAGulTyHuT2cAwKzoCmwu1vpU4eaE4ZERAC6saMD2\nBfrdCABXVXoLEQC+ImAARBIwACIJGACRBAyASAIGQCQBAyCSgAEQScAAiCRgAEQSMAAiCRgAkQQM\ngEgC9n+9T37pGEAQAQMgkoABEEnAAIgkYABEEjAAIgkYAJEEDIBIAgZAJAEDIJKAARBJwACIJGAA\nRBIwACIJGACRBAyASAIGQCQBAyCSgAEQScAAiPQxegJfaq3NN3rv+7sHR36k96m16Vf/FICz1Q3Y\n9G+61pXqvc9/Ph8ZMWUATlJ3C1GBAHii9ApsWq2u/vIR1nd1EeChvzzSDlE3YJudw19TLIAj1o+W\nETGru4U4aQ8AXyu6Apvjvz5VuDlheGQEgAsrGrB9gX43AsBVld5CBICvCBgAkQQMgEgCBkAkAQMg\nkoABEEnAAIgkYABEEjAAIgkYAJEEDIBIAvaP3qeE3yEAgIABkEnAAIgkYABEEjAAIgkYAJEEDIBI\nAgZAJAEDIJKAARBJwACIJGAARBIwACIJGACRBAyASAIGQCQBAyCSgAEQScAAiCRgW71PrY2eBADf\nETAAIgkYAJEEDIBIH6Mn8I3WWu99vrEMbkbmuw9HALiqugFru6MU6ywtYVtu70fOmScAQ9TdQuy9\nbyLUWttXDYB7qrsC21t2Dn+0uto0z8oM4KG4FUJMwH4dHsUCOGLzNM3AmRxUdwtxLeJSAnCmjBXY\nfEZjuX1wBIALqx6wJUX7Jh0ZAeCqMrYQAWBDwACIJGAARBIwACIJGACRBAyASAIGQCQBe6D3yVt/\nABQnYABEEjAAIgkYAJEEDIBIAgZAJAEDIJKAARBJwACIJGAARBIwACIJ2GPeTQqgOAEDIJKAfcki\nDKAyAXtGwwDKEjAAIgnYNyzCAGoSMAAiCdj3LMIAChIwACIJ2CEWYQDVCNhRGgZQioABEEnAfsAi\nDKAOAQMgkoD9jEUYQBECBkCkj9ET+EZrrfc+35hH5rsHR95hXoS9838A4Ht1A9ZWW3VLxpbbR0ZO\nnjAAZ6q7hdh7Lxshz4QBDFd3BfYq7d/UlI0iwFgt7Qfz6wfsTcXyTBhwMetHy4iY1d1CBIAnMlZg\n8xmN5fbBkffPyiIMYJjqAVtStG/SkREArsoW4p84jggwioABEEnA/soiDGAIAQMgkoABEEnAXsAu\nIsD5BAyASAL2GhZhACcTMAAiCdjLWIQBnEnAAIgkYK9kEQZwGgEDIJKAvZhFGMA5BAyASAIGQCQB\nez27iAAnEDAAIgnYW1iEAbybgAEQScDexSIM4K0EDIBIAvZGFmEA7yNgAEQSMAAiCdh72UUEeBMB\nAyCSgL2dRRjAOwgYAJEE7AwWYQAvJ2AARBKwk1iEAbyWgAEQScDOYxEG8EIfoydwVFs99vfe1yMP\n79a0NKzwHAEyxARs+rdMrbXl7pyu9d3iDZumqTUNA/iTpC3E1lq7yh6c7USAP8pbgf10gbVpXp3F\nme1EoJS4FUJMwH4dnjrF2rOdCNSxeZpm4EwOythCjLiUv2Y7EeAXMlZgvffNIcP9SMQpxK/YTgT4\nqYyATY+ytBlJ7Naa7USAH8nYQrwP24kABwlYOXPDZAzgOQGrqHdLMYBvCFhdGgbwRMwhjntaN8zh\nDoA1Aatu6ZaSAawJWIx9ySYxA25MwPKso2VZBtyWgGWzLANuS8AuwrIMuBsBuyDnPoA7ELAr25RM\nxoArEbBbWN4peJIx4CoE7EbWGduPA2QRsNvZ5+rhG1apGlCcgPG4VQ6AAMUJGI85yggUJ2B84+Fr\npQ/+E4D3ETCOOp6lb1OncMDfCRiv922fnhdO3oAjBIwBnifKAg44QsAo548LuN99TCCOgJHnFzX6\nRfNe+L8D7yBg3MILq/PCFn5FI+EIAYOfOaEuJzRyFG3mhQQMyrnwo/yF21zWhb+cBAw4z4UfTGtq\n7cqvWhEwgMs6cqY3t2H/jZ4AAMP0HryvK2AAt5bbMAEDIJKAAdxd6CJMwF6slfkqqDOTqdJk6sxk\nqjSZOjOZKk2mzkym908msWECBsA0BTbsUsfol59Qeu6xUIBx5oalPIJeJ2CttaVb69sAHBe0DrvO\nA/3DgJXawgbIERCH66zAHgr4DADwKw5xABBJwACIdJ3nwCanEAHu5FIBA+A+Ln6I40zrE49jfyzY\nHMicb4ya0sMToSdPZn8RBl6WzX/tsjz8r4d/N/kmiiBgrzT8S2rzsoGxr43bv4Zh4PVZvv9778Nf\nMriezOSyPJrMNPSyrL90h1+WzffR8AeZUhzieKXW2thXnvXe63x97ycz6vrUuSbTo8m4LFOly1Lq\nbRD2kxn+IFOKFdgrbX6EZGPs9Sn1eVlPZuBlKfVQ+HCpUeqzVoHLsmYF9jK+np4buyNU5xt+M5mx\nsyq7ZB/4bNPmz4H2k6nzySpCwF5j+Nd6ccOvT6nv/P3pgPMN/4ys7Z+7HTWT/mkq8DWzmUypT1kR\nVX4svYDhR5XWM6l8gGrsWZJqk6lz8O/hyKjJ1Pm6LTWZ4TOpRsAAiGQLEYBIAgZAJAEDIJKAARBJ\nwACIJGAARBIwACIJGACRBAyASAIGQCQBAyCSgAEQScAAiCRgAEQSMAAiCRgAkQQMgEgCBkAkAQMg\nkoABEEnAAIgkYABEEjAAIgkYAJEEDIBIAgZAJAEDIJKAARBJwACIJGAARBIwACIJGACRBAyASAIG\nQKT/ARh0EzE2S7kqAAAAAElFTkSuQmCC\n", "output_type": "display_data"}], "prompt_number": 22, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "plot(D); axis('tight');"]}, {"source": ["Display the leading eigenvectors - they look like Fourier modes."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "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\n", "output_type": "display_data"}], "prompt_number": 23, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "for i=1:16\n", " imageplot( reshape(V(:,i),[w1 w1]), '', 4,4,i );\n", "end"]}, {"source": ["Patch dimensionality reduction operator."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 24, "cell_type": "code", "language": "python", "metadata": {}, "input": ["iresh = @(Q)reshape(Q', [n n d]);\n", "descriptor = @(f)iresh( V(:,1:d)' * remove_mean(resh(P)) );"]}, {"source": ["Each |H(i,j,:)| is a $d$-dimensional descriptor\n", "of a patch."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 25, "cell_type": "code", "language": "python", "metadata": {}, "input": ["H = descriptor(f);"]}, {"source": ["Non-local Filter\n", "----------------\n", "NL-means applies, to each pixel location, an adaptive averaging kernel\n", "that is computed from patch distances.\n", "\n", "\n", "We denote $H_{i} \\in \\RR^d$ the descriptor at pixel $i$.\n", "We define the distance matrix\n", "$$ D_{i,j} = \\frac{1}{w_1^2}\\norm{H_i-H_j}^2. $$\n", "\n", "\n", "\n", "Operator to compute the distances $(D_{i,j})_j$ between the patch around $i=(i_1,i_2)$\n", "and all the other ones."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 26, "cell_type": "code", "language": "python", "metadata": {}, "input": ["distance = @(i)sum( (H - repmat(H(i(1),i(2),:), [n n 1])).^2, 3 )/(w1*w1);"]}, {"source": ["The non-local mean filter compute a denoised image $\\tilde f$ as\n", "$$ \\tilde f_i = \\sum_j K_{i,j} f_j $$\n", "where the weights $K$ are computed as\n", "$$ K_{i,j} = \\frac{ \\tilde K_{i,j} }{ \\sum_{j'} \\tilde K_{i,j'} }$\n", " \\qandq\n", " \\tilde K_{i,j} = e^{-\\frac{D_{i,j}}{2\\tau^2}} . $$\n", "\n", "\n", "\n", "The width $\\tau$ of the Gaussian is very important and should be adapted to match\n", "the noise level.\n", "\n", "\n", "\n", "Compute and normalize the weight."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 27, "cell_type": "code", "language": "python", "metadata": {}, "input": ["normalize = @(K)K/sum(K(:));\n", "kernel = @(i,tau)normalize( exp( -distance(i)/(2*tau^2) ) );"]}, {"source": ["Compute a typical example of kernel for some pixel position $(x,y)$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 28, "cell_type": "code", "language": "python", "metadata": {}, "input": ["tau = .05;\n", "i = [83 72];\n", "D = distance(i);\n", "K = kernel(i,tau);"]}, {"source": ["Display the squared distance and the kernel."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAIAAADOgk3lAAAACXBIWXMAAAsSAAALEgHS3X78AAAA\nIXRFWHRTb2Z0d2FyZQBBcnRpZmV4IEdob3N0c2NyaXB0IDguNTRTRzzSAAAgAElEQVR4nOy9y44s\nx3U1HJFZ9+rqyzmHPJR4PRYpiBBkQDBoQBZgQANDnvlN/Aoe+yE8+jzxxFMDhj0yDAjwQJYlUiTF\nmymee5++1rUrM+IfrH+vb2VkdfPYn0h2NWMNGtVVeYmMjNhr7x177/AxRpeRkZGRkbFtKL7pBmRk\nZGRkZPxvkAksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMj\nI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2Mr\nkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQks\nIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMj\nI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2Mr\nkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQks\nIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMj\nI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2Mr\nkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQks\nIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMj\nI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2Mr\nkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQks\nIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMj\nI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2Mr\nkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQksIyMjI2MrkQks\nIyMjI2Mr0fmmG5DxjcF7r//GGL+plmRkfJ3w3nO06+eMrUO2wL7ViAbX4rOMjBuPzF7bjkxgGc5l\n8yvj24fMXjcAmcAyMjK+dcj+hpuBTGAZGRnfOsBznmls25EJLMO57E7J+FYic9i2I0chfquRZ29G\nRsb2IuvdGRkZGRlbiexCzMjIyMjYSmQCy8jIyMjYSmQCy8jIyMjYSmQCy8jIyMjYSmQCy8jIyMjY\nSmQCy8jIyMjYSmQCy8jIyMjYStz8ROa33nqrKIoQgnNuMBiEEHq93t7e3nQ6rev67OxsPp8vFotO\npzMajfr9PpLz67rudDpFUVRVVRTFcDjEvycnJ71ebzKZ1HW9Wq3m8zmOHw6H6/W6rmvn3HK59N6H\nEPb29iaTSVEUz549u7i4WK/X3W53NBo558qyHA6HvV7v1q1bVVXNZrPDw8PFYnFxcdHpdMqy7Ha7\nuFpRFGhPr9fr9/vdbhfP9c477/zZn/3ZD3/4ww8//PBf//Vff/GLX4QQut2u9/7p06er1co5x+ND\nCN77TqczHA6RvHx8fOy9r6pqMBh0u93BYIAPq9VqOp3OZrOqqrz3RVGUZYk6Hbh4jLGqqk6n0+l0\n+v1+URTz+Xy5XD579iyE0O/3X375ZdxxPp9XVRVjXK/XnU4H5+JZYoy9Xs97X5YlivrggBBCXdd4\n/H6/PxwOY4wnJyenp6fdbheno9k4cb1e48tut/vSSy91Op2qqs7OztbrtbM6C3hT6/U6hDAej/Gi\n2Q/n5+cxRjxvjBHvned2u91ut/vRRx99AwP3/xmdToeVJjD+dQ8RjOrd3d0QwvHxcVVV+KkoCgw8\nvA7uVIDXx3/LssQFMbRwwaIo8CXeC66Gt3lxcVHXtV6EwLkY8CEEXJCtRTOueMyyLNlgjPDFYuFs\nzPNenE0ccroVA1vCqac9xgbwgmzbYDC4e/fuaDR6//33cRi7otfrYTxD/mCQY/rwIuwQ3BpTg03q\n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\n4pdffokcyE6nMxqNBoPB7u5uZts+OB84S5NzcOMuNHc2Nja63e5sNoMLgtIIViNEHY5I57z1obVo\nsS4eGxbckSj0T66trV1cXEwmExzj0uv16FRhO5m+wRQvSsdutwvlEbVZKdqzLEMWAJXfZTuGDX1L\ntSOzfQ78e271OPzKwkWN9iuekYqLzwFpHQi+rq6u8vgPPC90C0YNc3dGlO8T5pcuDAQOBgO6KM/O\nzoobcgjhuPP/mruCZAQr8pJVzQ8/IY07mRlEC5LiJJkfDBHu4XBYy03Ar3wbavdKKZ2dnXmRALfn\n2dkZI21LS0sIQPjf4nm3trbOzs6YdULVObPqqRhdiFRxbC/sQ65OudsEDUOwVteDQzfGeF2tGsy3\n7/uB/czL+mneCukVQmhNQ4UQQgjP/XchCiGEuJdIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVI\ngAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkh\nhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGgl\nEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBC\nCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFa\niQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSY\nEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSYEEKI\nViIBJoQQopVIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSYEEKIViIB\nJoQQopVIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQ\nopVIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVI\ngAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkh\nhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGgl\nEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBC\nCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFa\niQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSYEEKIViIBJoQQopVIgAkhhGglEmBCCCFaiQSY\nEEKIViIBJoQQopVIgAkhhGgl/w+fTi90qojK8gAAAABJRU5ErkJggg==\n", "output_type": "display_data"}], "prompt_number": 29, "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "imageplot(D, 'D', 1,2,1);\n", "imageplot(K, 'K', 1,2,2);"]}, {"source": ["Localizing the Non-local Means\n", "------------------------------\n", "We set a \"locality constant\" $q$ that set the maximum distance between\n", "patches to compare. This allows to speed up computation, and makes\n", "NL-means type methods semi-global (to avoid searching in all the image)."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 30, "cell_type": "code", "language": "python", "metadata": {}, "input": ["q = 14;"]}, {"source": ["Using this locality constant, we compute the distance between patches\n", "only within a window.\n", "Once again, one should be careful about boundary conditions."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAIAAADOgk3lAAAACXBIWXMAAAsSAAALEgHS3X78AAAA\nIXRFWHRTb2Z0d2FyZQBBcnRpZmV4IEdob3N0c2NyaXB0IDguNTRTRzzSAAAGcklEQVR4nO3VQQ0A\nIBDAMMC/58MDH7KkVbDf9swsAKg5vwMA4IWBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKB\nAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYG\nQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgA\nSQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAk\nGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBk\nYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKB\nAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYG\nQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgA\nSQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAk\nGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBk\nYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKB\nAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYG\nQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgA\nSQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAk\nGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBk\nYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKB\nAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYG\nQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgA\nSQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAk\nGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBk\nYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKB\nAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYG\nQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgA\nSQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAk\nGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBk\nYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKB\nAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYG\nQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgA\nSQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkGRgASQYGQJKBAZBkYAAkXffOBl3lg0i6AAAAAElF\nTkSuQmCC\n", "output_type": "display_data"}], "prompt_number": 31, "cell_type": "code", "language": "python", "metadata": {}, "input": ["selection = @(i){clamp(i(1)-q:i(1)+q, 1,n), clamp(i(2)-q:i(2)+q,1,n)};"]}, {"source": ["Compute distance and kernel only within the window."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "prompt_number": 32, "cell_type": "code", "language": "python", "metadata": {}, "input": ["distance = @(i,sel)sum( (H(sel{1},sel{2},:) - repmat(H(i(1),i(2),:), ...\n", " [length(sel{1}) length(sel{2}) 1])).^2, 3 )/(w1*w1);\n", "distance = @(i)distance(i,selection(i));\n", "kernel = @(i,tau)normalize( exp( -distance(i)/(2*tau^2) ) );"]}, {"source": ["Compute a typical example of kernel for some pixel position $(x,y)$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"ename": "RuntimeError", "traceback": ["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_cell_magic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'matlab'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m''\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'K = kernel(i,tau);'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/Users/gpeyre/anaconda/envs/py3k/lib/python3.3/site-packages/IPython/core/interactiveshell.py\u001b[0m in \u001b[0;36mrun_cell_magic\u001b[0;34m(self, magic_name, line, cell)\u001b[0m\n\u001b[1;32m 2160\u001b[0m \u001b[0mmagic_arg_s\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvar_expand\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstack_depth\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2161\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuiltin_trap\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2162\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmagic_arg_s\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcell\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2163\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2164\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/gpeyre/anaconda/envs/py3k/lib/python3.3/site-packages/pymatbridge/matlab_magic.py\u001b[0m in \u001b[0;36mmatlab\u001b[0;34m(self, line, cell, local_ns)\u001b[0m\n", "\u001b[0;32m/Users/gpeyre/anaconda/envs/py3k/lib/python3.3/site-packages/IPython/core/magic.py\u001b[0m in \u001b[0;36m\u001b[0;34m(f, *a, **k)\u001b[0m\n\u001b[1;32m 191\u001b[0m \u001b[0;31m# but it's overkill for just that one bit of state.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 192\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mmagic_deco\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 193\u001b[0;31m \u001b[0mcall\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 194\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 195\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcallable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/gpeyre/anaconda/envs/py3k/lib/python3.3/site-packages/pymatbridge/matlab_magic.py\u001b[0m in \u001b[0;36mmatlab\u001b[0;34m(self, line, cell, local_ns)\u001b[0m\n\u001b[1;32m 215\u001b[0m \u001b[0me_s\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;34m\"\\n-----------------------\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 216\u001b[0m \u001b[0me_s\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;34m\"\\nAre you sure Matlab is started?\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 217\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0me_s\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 218\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 219\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mRuntimeError\u001b[0m: There was an error running the code:\n K = kernel(i,tau);\n-----------------------\nAre you sure Matlab is started?"], "output_type": "pyerr", "evalue": "There was an error running the code:\n K = kernel(i,tau);\n-----------------------\nAre you sure Matlab is started?"}], "prompt_number": 36, "cell_type": "code", "language": "python", "metadata": {}, "input": ["D = distance(i);\n", "K = kernel(i,tau);"]}, {"source": ["Display the squared distance and the kernel."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "imageplot(D, 'D', 1,2,1);\n", "imageplot(K, 'K', 1,2,2);"]}, {"source": ["The NL-filtered value at pixel $(x,y)$ is obtained by averaging the values\n", "of $f$ with the weight $K$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "cell_type": "code", "language": "python", "metadata": {}, "input": ["NLval = @(K,sel)sum(sum(K.*f(sel{1},sel{2})));\n", "NLval = @(i,tau)NLval( kernel(i,tau), selection(i) );"]}, {"source": ["We apply the filter to each pixel location\n", "to perform the NL-means algorithm."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "cell_type": "code", "language": "python", "metadata": {}, "input": ["[Y,X] = meshgrid(1:n,1:n);\n", "NLmeans = @(tau)arrayfun(@(i1,i2)NLval([i1 i2],tau), X,Y);"]}, {"source": ["Display the result for some value of $\\tau$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "cell_type": "code", "language": "python", "metadata": {}, "input": ["tau = .03;\n", "clf; \n", "imageplot(NLmeans(tau));"]}, {"source": ["__Exercise 1__\n", "\n", "Compute the denoising result for several values of $\\tau$ in order to\n", "determine the optimal denoising that minimizes $\\norm{\\tilde f - f_0}$."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "cell_type": "code", "language": "python", "metadata": {}, "input": ["exo1()"]}, {"collapsed": false, "outputs": [], "cell_type": "code", "language": "python", "metadata": {}, "input": ["%% Insert your code here."]}, {"source": ["Display the best result."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "cell_type": "code", "language": "python", "metadata": {}, "input": ["clf;\n", "imageplot(clamp(fNL));"]}, {"source": ["__Exercise 2__\n", "\n", "Explore the influence of the $q$ and $w$ parameters."], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "cell_type": "code", "language": "python", "metadata": {}, "input": ["exo2()"]}, {"collapsed": false, "outputs": [], "cell_type": "code", "language": "python", "metadata": {}, "input": ["%% Insert your code here."]}, {"source": ["Bibliography\n", "------------\n", "\n", "\n", "\n", "* [BuaCoMoA05] Buades, B. Coll, J.f Morel, [A review of image denoising algorithms, with a new one][1], SIAM Multiscale Modeling and Simulation, Vol 4 (2), pp: 490-530, 2005.\n", "\n", "[1]:http://dx.doi.org/10.1137/040616024"], "metadata": {}, "cell_type": "markdown"}], "metadata": {}}], "nbformat": 3, "metadata": {"kernelspec": {"name": "matlab_kernel", "language": "matlab", "display_name": "Matlab"}, "language_info": {"mimetype": "text/x-matlab", "name": "matlab", "file_extension": ".m", "help_links": [{"url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md", "text": "MetaKernel Magics"}]}}}