Skip to content

Instantly share code, notes, and snippets.

@patricksnape
Created November 1, 2016 23:21
Show Gist options
  • Save patricksnape/75add4213e743756aaf5974c30701295 to your computer and use it in GitHub Desktop.
Save patricksnape/75add4213e743756aaf5974c30701295 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "%matplotlib inline\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom scipy.interpolate import splev, splprep, interp1d\nimport scipy\nimport menpo.io as mio",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "control_pts = mio.import_builtin_asset.lenna_ljson().lms.points[[0, 1, 2, 16]][:, ::-1].T",
"execution_count": 13,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "plt.plot(*control_pts, 'ro')",
"execution_count": 14,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "[<matplotlib.lines.Line2D at 0x10fa6aeb8>]"
},
"metadata": {},
"execution_count": 14
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": "<matplotlib.figure.Figure at 0x10fa607f0>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "tck, control_u = splprep(control_pts)",
"execution_count": 15,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "n_samples = 50",
"execution_count": 16,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "resolution = 100\ndef deriv(u):\n x1, y1 = splev(u, tck, der=1)\n return np.sqrt(x1 ** 2 + y1 ** 2)\narc_lengths = np.array([scipy.integrate.quadrature(deriv, 0, a, maxiter=25)[0] \n for a in np.linspace(0, 1, num=resolution)])\ntotal_length = arc_lengths[-1]",
"execution_count": 17,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "values = np.linspace(0, 1, num=n_samples)\nscaled_values = values * total_length",
"execution_count": 18,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "uniform_sampling = interp1d(arc_lengths, np.linspace(0, 1, num=resolution))(scaled_values)",
"execution_count": 19,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "sampled_coords = np.stack(splev(np.linspace(0, 1, num=n_samples), tck))\nplt.plot(*sampled_coords, 'ys')\nplt.title('Non-uniform')",
"execution_count": 20,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "<matplotlib.text.Text at 0x10fbd0898>"
},
"metadata": {},
"execution_count": 20
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n/53VvlDcj/zRAAAAAElFTkSuQmCC\n",
"text/plain": "<matplotlib.figure.Figure at 0x10fa86860>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "sampled_coords = np.stack(splev(uniform_sampling, tck))\nplt.plot(*sampled_coords, 'ro')\nplt.title('Uniform')",
"execution_count": 21,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "<matplotlib.text.Text at 0x10fe1a208>"
},
"metadata": {},
"execution_count": 21
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEKCAYAAAD+XoUoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGytJREFUeJzt3X+MXGd97/H3ZxPsJlDygwjS2CTZOklrRykEiKFw1cwC\nQQ5tA1IriroLdUOLlNwbLAiFuFyzu7goTq6hl1b9IbUNSYtpEtyWUpofdkSmESl2THGKi5PWxGvH\n2sipCiGpccu1s9/7xzxrj2d/ndn5cc7M+byklWfOnHPmu+sz33nmeb7PM4oIzMysHAbyDsDMzLrH\nSd/MrESc9M3MSsRJ38ysRJz0zcxKxEnfzKxEnPSttCT9kaRP1N2/QdJhSS9IOifP2Mw6Ra7Tt14l\naQq4JCL2120bTdve1+S5TgdeAFZHxL+0N1Kz4nBL33rZXC2WxbRkzgeWAk8sJhBJWsxxZt3mpG+9\nbN5EK+lqSYckfUTSs5ImJa2te/zzkj4l6VLgybT5OUkPpcffLOkxSc9J2inpZ+uOfVjS70j6uqQf\nAoNp20ZJj0r6T0l/K+lcSV+Q9Hw6x4Xt/zOYZeekb/3ufODHgQuA3wD+QNJZ9TtExD7g8nT3rIh4\ne+rT/yrwf4FXAL8L/H1DX/9IOuePA0+nbb8CDKfnuwT4R+DPgHOovbGMtvsXNGuGk771u/8HbIyI\nFyPifuAI8FPz7D/96eHngX+LiC9GxFRE3E0taf9i3b53RsST6fHjadvnI+JARPwncD/wVEQ8HBFT\nwJeAK9v5y5k1y0nfetmLwEsatr0EOFZ3/3sp4U47Crwsw7kvAA42bDsILKu7f2iW456tu/1fs9zP\n8txmHeOkb73saeDihm2DzEzWi/HMLOe+EJisu+/SN+s5TvrWy+4B/rekZap5O/ALwNZFnq9+YPg+\n4FJJ75V0mqRfAVYCf9dayGb5Oj3vAMxa8ClgHPg6cDbwFPCrEbF3nmPma52feCwivi/pF4DfA/4I\n+C7w8xHx3DznccvfCm/ByVmSlgKPAEuovUlsjYhxSa8B/hj4MWp9qDdGxDfTMeuB64HjwLqI2Na5\nX8HMzLLKNCNX0pkRcVTSacCjwDpqrazPRMQ2SdcCH4uIIUmrgC3AVcBy4CHg0vDUXzOz3GXq04+I\no+nmUmqt/an0M13vfDYnB7iuA+6OiOMRcQDYB6xuV8BmZrZ4mfr0JQ0A/wSsAP4gInZJ+jDwoKTP\nUBsAe3PafRnwjbrDJzm1zM3MzHKStaU/FRFXUuuuWS3pcuAGav31FwIfBu7oXJhmZtYOTVXvRMQL\nkqrAGuD9EbEubd8q6U/TbpPAq+sOW86ptc0ASHIfv5nZIkTEohf4W7ClL+m86bVKJJ0BXENtJcJn\nJF2dtr+NWt89wFeA90paImmQ2vojj80ReOF+RkdHc4/BMTmmMsblmLL9tCpLS/8ngLtSv/4AcE9E\n3CfpeeBzqaLnv4EPpkS+V9K9wF5OlnK6VW9mVgALJv2I2AO8bpbtjwJvmOOYW4FbW47OzMzayssw\nNKhUKnmHMINjysYxZVfEuBxTd+T2dYmS3OtjZtYkSUQnB3LNzKx/OOmbmZWIk76ZWYk46ZuZlYiT\nvplZiTjpm5mViJO+mVmJOOmbmZWIk76ZWYk46ZuZlYiTvplZiTjpm5mViJO+mVmJOOmbmZWIk76Z\nWYk46ZuZlYiTvplZiTjpm5mViJO+mVmJOOmbmZWIk76ZWYk46ZuZlYiTvplZiTjpm5mViJO+mVmJ\nnJ53ANZZBycmuHPDBqYmJxlYtoy1Gzdy0eBg3mGZWU4UEfPvIC0FHgGWUHuT2BoR4+mxm4AbgePA\n30fELWn7euD6tH1dRGyb5byx0HNbaw5OTPD711zD+FNP8VLgh8DoihXctH37jMTvNwez3iCJiNCi\nTxARC/4AZ6Z/TwN2AKuBCrANOD09dl76dyWwm9obxMXAd0lvLg3nDFu8A/v3x9jwcHyyUomx4eE4\nsH//jH3GhofjCETU/RyBGBsennGum1esOLHvEYibV6yY9Zxmlq+UOzPl7tl+MnXvRMTRdHNpSuYB\n3ABsiojjaZ//SPu8C7g7bT8gaV96k9i5qHclm2HWFvyOHTNa8FOTk7y04diXAlPPPHPKtjs3bDhx\nrul9xp96is0bNjD6hS/MeG5/IjDrXZkGciUNSNoNHAa2R8Qu4DLg5yTtkPSwpNen3ZcBh+oOn0zb\nrE3mStJ3bthwyn4Dy5bxw4ZjfwgMXHDBKduyvjlMv9l8dMsWxqtVPrplC79/zTUcnJho8Tcys27J\nlPQjYioirgSWA6slXU6txX9ORLwJ+Bjwpc6FWS4HJyYYHxlhdGiI8ZGRGUk1a5Jeu3EjoytWnEj8\n0336azduPGW/rG8OWd9ssvwOZpaPpqp3IuIFSVVgDbXW/F+n7bskvSjpFdRa9hfWHbY8bZthbGzs\n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\nehq4HViftnd9QpdOTjTbAbwqIp6F2osYeGUecenUyW/1rgfuyzsmSdcBhyJiT8Nuef6dCjNJsCGu\nXK91SQOqFV4cBrZHxC5yvs7niKle16/z2WLK+zqf4+/Utuu820n/BmqTuy6k9qK4o8vPD8ycaMbJ\nd/dpXR/dniWm6e2fAI5FxF/mGRPwIrWqrdF5D+piTOnvdGKSIPAxapMEixBXrtd6RExFxJXUWs6r\nJV1Oztd5Q0xvlLRq+rG8rvNZ/k5XkPN1Psf/Xduu824n/V+LiC8DRMRW4Kq0fRJ4dd1+yzn5cbit\nVJtothX4i4j427T5WUmvSo+fD/x7N+OaIyYkrQXeCfxq3e55xbSCWp/hP0uaSM/7LUmvTM9/YQ4x\nQa2V89cAqUX0oqRXdCumeeLK/VpPz/0CUAXWkPN13hDTwymmXK/zhpiq1LpLLibH63yWmNbQzuu8\n3YMQDQMSFwN76u5/B7g63X4bsCtOHbRZAgzSoQGS9Fx/Dny2YdttwMfT7dkGuDoa1xwxrUl/r1c0\nbM8tpobHJ6i1PPL+O30QGE+3LwMOFuSayu1aB84Dzkq3zwAeoZZUc7vO54kpt+t8rpjyvM7n+Tu1\n7Tpv+wugLvgvAs9Qm7j1NPDrwJuBb6YgvwFcWbf/+hTwE6Sqhw7E9BZq3RSPpxi+lS66c4GHqFWE\nbAPO7lZcc8R0LbUBmYPp/reAP8w5pjUN++wnVTXkGRPwEuAvgD3p2rq6INdUbtc6cEWK43Hg28An\n0vY8r/O5YsrzOp81ppyv87n+Tm27zj05y8ysRPx1iWZmJeKkb2ZWIk76ZmYl4qRvZlYiTvpmZiXi\npG9mViJO+mZmJeKkb2ZWIv8f7+evqH9+TIQAAAAASUVORK5CYII=\n",
"text/plain": "<matplotlib.figure.Figure at 0x10fbcc978>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false,
"scrolled": true
},
"cell_type": "code",
"source": "n = np.stack(splev(uniform_sampling, tck, der=1))\nn /= np.linalg.norm(n, axis=0)\n# Ensure that the normal always points towards the origin\nn = n[::-1] * [[1], [-1]]\nn *= np.sign(n[:, 0].dot(-sampled_coords[:, 0]))",
"execution_count": 22,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "plt.quiver(*sampled_coords, *n)",
"execution_count": 23,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "<matplotlib.quiver.Quiver at 0x10ff739e8>"
},
"metadata": {},
"execution_count": 23
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nnzPKSpS7d+8iNjYWvXv31lovKSkJHTt2xIMHD1TKfX190b59+3zbXb9+HePGjcPLly/x9OlTXla8\nGOK1d3Ivi+xJAAAgAElEQVQ8fvwYly5dkhJ7bnKPjIxEamqqWv0tW7ZwwmclTosWLXTWyczMxLBh\nw6SE/8477yAkJATt2rXLN+EnJSVh/vz52Lp1K4gIa9as4YRfWhlyQcCQDUa+kJuVlUWHDx+md999\nV+eNWA4ODnTixAkKCQmhrKwso8bBWFHLfXg6AOrXrx/FxMSQlZWV9JSu1508eZJq1aoltalUqRIl\nJiYWctRMX+D19FUpFArat28fOTk56bX2jo2NDXXo0IHGjx9PW7dupVu3bpkkLsYKw+bNm6WfbWdn\nZ0pKSiIiooULF6qs3UNEFBERQQMHDlT7nZg+fXpRhM70xEk/HxkZGbRz506qW7euXsk/d3N1dTVp\nXIyZioeHB5mZmUl/zYaFhUn78v5Fm5mZSZs3b6ZKlSppXI4kPDy8KMJnejI06Zfa2TsWFhYYM2YM\ngoODsW3bNtSqVUvat337dnh7e+Pnn3/G2LFj0bZtW1hbWwMAmjdvXlQhM/bGsrKyMGvWLCiVSpQv\nXx5ubm6oW7eutD/3TvP4+Hh069YNkyZN0rjI4LBhw1CnTh2d50tLS1NbAoKVEIZ8YhiyoZBvzkpL\nS6NNmzaRo6MjDR8+XG1/ZmYmPXr0iJ49e1aocTFmLNHR0dSuXTs6cuSI1noymYw8PDyoatWqaj39\n27dv6zzP2bNnqUOHDpSWlmas0FkBgHv6+ilfvjwmTZqE0NBQ9OjRQ22/ubk5GjVqhLfffrsIomPM\ncDVq1ICPjw+GDh2qtZ61tTXOnTuHhIQElfJu3bqhVatW+baLiIjA4MGD0a9fP/Tv319aw4qVLKV+\nnj5jTNWGDRswffp0ANnr9jdo0ADu7u44d+6cxifIKRQKbNq0CYsWLYJMJoOtrS2ePXum87GPzDR4\nnj5jTG8nTpzAjBkzAGQvLX727FlERUUhJCQEffr0Uavv4+ODCRMm4P79+1LZhAkTOOGXYGWmpx8f\nH4+HDx8iKCgI7dq14wu2rMzx9fVFt27dkJ6ejooVK+LatWto1aoViAh///03OnXqJNWNj4/HnDlz\nsGvXLpVjWFlZ4enTp6hRo0Zhh89ycE8/DyJCdHQ0goKCpASf+/rFixcAsmfnjBw5smgDZayQhYSE\n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\n",
"text/plain": "<matplotlib.figure.Figure at 0x10fa88390>"
},
"metadata": {}
}
]
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"file_extension": ".py",
"version": "3.5.1",
"mimetype": "text/x-python",
"name": "python",
"codemirror_mode": {
"version": 3,
"name": "ipython"
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python"
},
"widgets": {
"version": "1.1.2",
"state": {}
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment