{ "metadata": { "name": "", "signature": "sha256:5963a0b03438d79b8bddee9411be0e3bf52b93fe4ab00c5912be8e9036084951" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "\u3053\u306e\u30ce\u30fc\u30c8\u306b\u3064\u3044\u3066" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u30ed\u30dc\u30c3\u30c8\u30a2\u30fc\u30e0\u3092\u4f7f\u3063\u305f\u30d4\u30c3\u30af\u30a2\u30f3\u30c9\u30d7\u30ec\u30fc\u30b9\u4f5c\u696d\u306b\u5fc5\u8981\u306a\u753b\u50cf\u4e2d\u306e\u7269\u4f53\u306e\u4f4d\u7f6e\u59ff\u52e2\u63a8\u5b9a\u3092\u624b\u3092\u52d5\u304b\u3057\u306a\u304c\u3089\u5b66\u7fd2\u3057\u307e\u3057\u3087\u3046\u3002\u753b\u50cf\u51e6\u7406\u3067\u3088\u304f\u4f7f\u3046\u8868\u8272\u7cfb\u5909\u63db\u3001\u9818\u57df\u5206\u5272\u3001\u30cf\u30d5\u5909\u63db\u306a\u3069\u306e\u30c6\u30af\u30cb\u30c3\u30af\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Written by Yosuke Matsusaka (MID Academic Promotions, Inc. [@yosuke](https://twitter.com/yosuke))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u3053\u306e\u30ce\u30fc\u30c8\u306fCreative Commons\u306eBY-SA\u30e9\u30a4\u30bb\u30f3\u30b9\u3067\u516c\u958b\u3057\u307e\u3059\u3002![CC BY-SA](http://i.creativecommons.org/l/by-sa/3.0/88x31.png)" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "\u6e96\u5099" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u3053\u306e\u30ce\u30fc\u30c8\u306fipython notebook\u3092\u4f7f\u3063\u305f\u624b\u3092\u52d5\u304b\u3057\u306a\u304c\u3089\u5b66\u3079\u308b\u6559\u6750\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002Ubuntu\u4e0a\u3067\u306f\n", "```\n", "sudo apt-get install ipython-notebook python-matplotlib python-opencv\n", "ipython notebook --pylab inline\n", "```\n", "\u3068\u5165\u529b\u3059\u308b\u3053\u3068\u3067\u74b0\u5883\u3092\u7acb\u3061\u4e0a\u3052\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ipython notebook\u3092\u7acb\u3061\u4e0a\u3052\u3066\u65b0\u898f\u30ce\u30fc\u30c8\u3092\u4f5c\u6210\u3057\u305f\u3089\u3001\u307e\u305a\u30b0\u30e9\u30d5\u63cf\u753b\u3068\u6570\u5f0f\u51e6\u7406\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u8aad\u307f\u8fbc\u307f\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import cv2\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import matplotlib.animation as animation" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u4ee5\u4e0b\u3082\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u306e\u90e8\u5206\u306f\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3GIF\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306e\u304a\u307e\u3058\u306a\u3044\u3067\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Part of code is taken from: http://nbviewer.ipython.org/url/jakevdp.github.io/downloads/notebooks/AnimationEmbedding.ipynb\n", "from tempfile import NamedTemporaryFile\n", "\n", "GIF_TAG = \"\"\"\"\"\"\n", "\n", "def anim_to_html(anim):\n", " if not hasattr(anim, '_encoded_video'):\n", " with NamedTemporaryFile(suffix='.gif') as f:\n", " anim.save(f.name, writer='imagemagick', fps=4)\n", " video = open(f.name, \"rb\").read()\n", " anim._encoded_video = video.encode(\"base64\")\n", " return GIF_TAG.format(anim._encoded_video)\n", "\n", "animation.Animation._repr_html_ = anim_to_html" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u4eca\u56de\u4f7f\u3046\u753b\u50cf\u306f\u4ee5\u4e0b\u306e\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u306b\u3088\u3063\u3066\u751f\u6210\u3057\u305f\u3082\u306e\u3067\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.display import Image\n", "Image(url=\"http://devrt.tk/build/repo/54237a608ec2f07bded7cf2d.gif\")" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ "" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u5b9f\u884c\u306e\u305f\u3081\u306b\u5fc5\u8981\u306a\u30c7\u30fc\u30bf\u3068\u3001\u30d9\u30eb\u30c8\u4e0a\u3092\u6d41\u308c\u308b\u7269\u4f53\u3092\u4eee\u60f3\u30ab\u30e1\u30e9\u304b\u3089\u64ae\u5f71\u3057\u305f\u9023\u7d9a\u753b\u50cf\u306e\u30c7\u30fc\u30bf\u3092\u4ee5\u4e0b\u306e\u30ec\u30dd\u30b8\u30c8\u30ea\u3067\u516c\u958b\u3057\u3066\u3044\u307e\u3059\u3002\u624b\u3092\u52d5\u304b\u3057\u305f\u3044\u65b9\u306fgit\u3067\u30af\u30ed\u30fc\u30f3\u3057\u3066\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n", "```\n", "git clone https://github.com/devrt/world-robot-picking.git\n", "cd world-robot-picking\n", "git submodule init\n", "git submodule update\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u7269\u4f53\u3092\u64ae\u5f71\u3057\u305f\u9023\u7d9a\u753b\u50cf\u3092\u8aad\u307f\u8fbc\u307f\u307e\u3059\u3002\u6700\u7d42\u7684\u306b\u306f\u9023\u7d9a\u753b\u50cf\u3092\u51e6\u7406\u3059\u308b\u306e\u3067\u3059\u304c\u3001\u89e3\u8aac\u3068\u691c\u8a0e\u306b\u3064\u3044\u3066\u306f\u9014\u4e2d\uff08\uff14\u30d5\u30ec\u30fc\u30e0\u76ee\uff09\u306e\u9759\u6b62\u753b\u3092\u4f7f\u3063\u3066\u884c\u3044\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "imgs = []\n", "for i in range(1, 10):\n", " imgs.append(cv2.imread('../cap%i.ppm' % i))\n", "img = imgs[4]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u30b0\u30e9\u30d5\u9818\u57df\u3092\u521d\u671f\u5316\u3057\u307e\u3059\u3002\u3053\u306e\u30b0\u30e9\u30d5\u4e0a\u3067\u753b\u50cf\u51e6\u7406\u306e\u7d50\u679c\u3092\u78ba\u304b\u3081\u3066\u3044\u304d\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "fig = plt.figure()\n", "im = plt.imshow(imgs[0])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nYII=\n", "text": [ "" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u9023\u7d9a\u753b\u50cf\u3092\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u3067\u8868\u793a\u3059\u308b\u3068\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u30d9\u30eb\u30c8\u306e\u4e0a\u3092\u8907\u6570\u306e\u7269\u4f53\u304c\u53f3\u304b\u3089\u5de6\u306b\u6d41\u308c\u3066\u3044\u304f\u69d8\u5b50\u304c\u308f\u304b\u308b\u3068\u601d\u3044\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "i = 0\n", "def animate(*args):\n", " global i, im, imgs\n", " im.set_array(imgs[i])\n", " i = i + 1\n", " return im,\n", "animation.FuncAnimation(fig, animate, frames=8, blit=True)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ "" ] } ], "prompt_number": 6 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "\u8868\u8272\u7cfb\u306e\u5909\u63db" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u3053\u308c\u304b\u3089\u30d9\u30eb\u30c8\u4e0a\u3092\u6d41\u308c\u308b\u7269\u4f53\u306e\u4f4d\u7f6e\u59ff\u52e2\u3092\u753b\u50cf\u51e6\u7406\u306b\u3088\u3063\u3066\u8a8d\u8b58\u3057\u3066\u3044\u304f\u308f\u3051\u3067\u3059\u304c\u3001\u307e\u305a\u306f\u30d9\u30eb\u30c8\u3068\u7269\u4f53\u3092\u533a\u5225\u3059\u308b\u3053\u3068\u3092\u8003\u3048\u307e\u3059\u3002\n", "\n", "\u4eca\u56de\u306f\u6df1\u5ea6\u60c5\u5831\u306e\u5f97\u3089\u308c\u306a\u3044\u901a\u5e38\u306e\u30ab\u30e9\u30fc\u30ab\u30e1\u30e9\u3092\u4f7f\u3046\u305f\u3081\u3001\u8272\u3092\u4f7f\u3063\u3066\u7269\u4f53\u3092\u533a\u5225\u3057\u307e\u3059\u3002\n", "\n", "\u4e00\u8a00\u306b\u300c\u8272\u300d\u3068\u8a00\u3063\u3066\u3082\u3001\u305d\u306e\u6271\u3044\u306f\u601d\u3063\u305f\u3088\u308a\u96e3\u3057\u3044\u3053\u3068\u304c\u591a\u304f\u3042\u308a\u307e\u3059\u3002\u4e0a\u306e\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u3092\u898b\u3066\u3082\u305d\u308c\u305e\u308c\u306e\u7269\u4f53\u306b\u3088\u3063\u3066\u8272\u306f\u7570\u306a\u308a\u307e\u3059\u3057\u3001\u7269\u4f53\u306e\u5074\u9762\u306b\u5f71\u304c\u3067\u304d\u3066\u8272\u304c\u5909\u5316\u3057\u3066\u3044\u307e\u3059\u3002\u4eca\u56de\u306f\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u3067\u751f\u6210\u3057\u305f\u753b\u50cf\u3092\u4f7f\u3044\u307e\u3059\u304c\u3001\u5b9f\u969b\u306e\u753b\u50cf\u8a8d\u8b58\u3067\u306f\u7167\u660e\u306e\u30e0\u30e9\u304b\u3089\u3067\u304d\u308b\u30d9\u30eb\u30c8\u9762\u306e\u8272\u5909\u5316\u306b\u3082\u5bfe\u5fdc\u3057\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002\n", "\n", "\u305d\u306e\u3088\u3046\u306a\u3068\u304d\u306b\u4fbf\u5229\u306b\u4f7f\u3048\u308b\u306e\u304c\u300c\u8868\u8272\u7cfb\u300d\u3067\u3059\u3002\u901a\u5e38\u306e\u30ab\u30e9\u30fc\u753b\u50cf\u306f\u5149\u306e\u4e09\u539f\u8272\u3067\u3042\u308b\u8d64\u30fb\u7dd1\u30fb\u9752\u306e\u6df7\u5408\u3067\u8272\u3092\u8868\u73fe\u3059\u308b\u300cRGB\u8868\u8272\u7cfb\u300d\u304c\u4f7f\u308f\u308c\u307e\u3059\u304c\u3001\u753b\u50cf\u51e6\u7406\u306e\u5834\u5408\u3001\u8272\u76f8\u30fb\u5f69\u5ea6\u30fb\u660e\u5ea6\u3067\u8272\u3092\u8868\u73fe\u3059\u308b\u300cHSV\u8868\u8272\u7cfb\u300d\u304c\u3088\u304f\u4f7f\u308f\u308c\u307e\u3059\u3002\n", "\n", "\u4eca\u56de\u306f\u753b\u50cf\u51e6\u7406\u306bOpenCV\u3092\u4f7f\u3044\u307e\u3059\u304c\u3001OpenCV\u3067\u306f\u4ee5\u4e0b\u306e\u95a2\u6570\u3092\u4f7f\u3063\u3066\u8868\u8272\u7cfb\u3092\u5909\u63db\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "hsv = cv2.cvtColor(img, cv2.COLOR_RGB2HSV)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u5909\u63db\u5f8c\u306eHSV\u753b\u50cf\u304b\u3089\u300c\u8272\u76f8\u300d\u3092\u898b\u3066\u307f\u307e\u3059\u3002\u5404\u7269\u4f53\u306e\u8272\u306e\u7279\u5fb4\u304c\u51fa\u3066\u3044\u307e\u3059\u3002\u5143\u306e\u753b\u50cf\u304b\u3089\u306f\u6c17\u3065\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u304c\u30d9\u30eb\u30c8\u9762\u304c\u5c11\u3057\u8d64\u307f\u304c\u304b\u3063\u3066\u3044\u305f\uff08\u8d64\u3044\u7269\u4f53\u3068\u540c\u8272\u3060\u3063\u305f\uff09\u3053\u3068\u304c\u5206\u304b\u308a\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.imshow(hsv[:, :, 0])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n+n9SRAntGQoStgAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u6b21\u306f\u300c\u5f69\u5ea6\u300d\u3067\u3059\u3002\u5730\u5473\u306a\u8272\u306e\u30d9\u30eb\u30c8\u9762\u3068\u305d\u308c\u306b\u6bd4\u3079\u3066\u9bae\u3084\u304b\u306a\u7269\u4f53\u306e\u8272\u306e\u7279\u5fb4\u304c\u304d\u308c\u3044\u306b\u51fa\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u7279\u5fb4\u3092\u4f7f\u3048\u3070\u7269\u4f53\u3092\u3046\u307e\u304f\u5207\u308a\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u305d\u3046\u3067\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.imshow(hsv[:, :, 1])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 9, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nESmi/weaeZaFnvz40wAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u6700\u5f8c\u306b\u300c\u660e\u5ea6\u300d\u3082\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002\u4eca\u56de\u306f\u3053\u306e\u60c5\u5831\u306f\u4f7f\u3044\u307e\u305b\u3093\u304c\u3001\u7269\u4f53\u306e\u9762\u306b\u5fdc\u3058\u305f\u7167\u660e\u306e\u53cd\u5c04\u306e\u69d8\u5b50\u3092\u304d\u308c\u3044\u306b\u898b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.imshow(hsv[:, :, 2])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 10 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "\uff12\u5024\u5316\u3068\u9818\u57df\u5206\u5272" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "HSV\u8868\u8272\u7cfb\u306e\u300c\u5f69\u5ea6\u300d\u3092\u4f7f\u3046\u3068\u7269\u4f53\u3092\u3046\u307e\u304f\u5207\u308a\u51fa\u305b\u305d\u3046\u306a\u3053\u3068\u304c\u308f\u304b\u3063\u305f\u306e\u3067\u65e9\u901f\u4f5c\u696d\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002\n", "\n", "\u7269\u4f53\u3092\u5207\u308a\u51fa\u3059\u306b\u306f\u307e\u305a\u3042\u308b\u95be\u5024\uff08\u4eca\u56de\u306f100\uff09\u3067\u753b\u50cf\u30922\u5024\u5316\u3057\u307e\u3059\u3002\u5143\u306e\u753b\u50cf\u306f8bit\u8272\uff08256\u968e\u8abf\uff09\u306a\u306e\u3067\u3059\u304c\u30012\u5024\u5316\u51e6\u7406\u3092\u884c\u3046\u3068\u6587\u5b57\u901a\u308a2\u8272\u306b\u306a\u308a\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "ret, mask = cv2.threshold(hsv[:, :, 1], 100, 255, cv2.THRESH_BINARY)\n", "plt.imshow(mask)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 11, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "2\u5024\u5316\u3057\u305f\u753b\u50cf\u30921\uff08\u8d64\uff09\u306b\u306a\u3063\u3066\u3044\u308b\u5cf6\u3054\u3068\u306b\u5207\u308a\u5206\u3051\u307e\u3059\u3002\u3053\u306e\u3088\u3046\u306a\u51e6\u7406\u306e\u3053\u3068\u3092\u300c\u9818\u57df\u5206\u5272\u300d\u3068\u8a00\u3044\u307e\u3059\u3002OpenCV\u3067\u306f\u4ee5\u4e0b\u306e\u95a2\u6570\u3092\u4f7f\u3044\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "help(cv2.findContours)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Help on built-in function findContours in module cv2:\n", "\n", "findContours(...)\n", " findContours(image, mode, method[, contours[, hierarchy[, offset]]]) -> contours, hierarchy\n", "\n" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "OpenCV\u306efindContours\u95a2\u6570\u306b\u306f\u9069\u7528\u3059\u308b\u9818\u57df\u5206\u5272\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306b\u3088\u308a\u69d8\u3005\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u3042\u308b\u306e\u3067\u3059\u304c\u3001\u4eca\u56de\u306f\u4ee5\u4e0b\u306e\u6a19\u6e96\u7684\u306a\u8a2d\u5b9a\u3092\u4f7f\u3044\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "blob, idx = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u9818\u57df\u5206\u5272\u3092\u884c\u3063\u305f\u7d50\u679c\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002\u7121\u4e8b\u306b3\u3064\u306e\u9818\u57df\u306b\u5206\u5272\u3067\u304d\u3066\u3044\u308b\u3088\u3046\u3067\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "shape(blob)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "(3,)" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u8a66\u3057\u306b2\u756a\u76ee\u306e\u9818\u57df\u3092\u753b\u50cf\u3068\u3057\u3066\u8868\u793a\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "mask = np.zeros(img.shape[:-1], np.uint8)\n", "cv2.drawContours(mask, blob, 1, 255, -1)\n", "plt.imshow(mask)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u4e0a\u8a18\u306e\u5207\u308a\u51fa\u3057\u305f\u753b\u50cf\u3092\u5143\u306e\u5165\u529b\u753b\u50cf\u306b\u30de\u30b9\u30af\u3068\u3057\u3066\u639b\u3051\u3066\u3042\u3052\u308b\u3068\u3001\u7dd1\u306e\u7269\u4f53\u3060\u3051\u3092\u629c\u304d\u51fa\u3057\u3066\u8868\u793a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.imshow(cv2.bitwise_and(img, img, mask=mask))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "1\u756a\u76ee\u306e\u9818\u57df\u306f\u9752\u306e\u7269\u4f53\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u307f\u305f\u3044\u3067\u3059\u306d\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "mask2 = np.zeros(img.shape[:-1], np.uint8)\n", "cv2.drawContours(mask2, blob, 0, 255, -1)\n", "plt.imshow(cv2.bitwise_and(img, img, mask=mask2))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 17, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n/w9kQmn6ywX8hAAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 17 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u9818\u57df\u5206\u5272\u304c\u3067\u304d\u308b\u3068\u7269\u4f53\u306e\u69d8\u3005\u306a\u60c5\u5831\u3092\u5f97\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\n", "\n", "\u9818\u57df\u306e\u91cd\u5fc3\uff08\uff1d\u7269\u4f53\u306e\u753b\u50cf\u5185\u3067\u306e\u5ea7\u6a19\uff09\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u6c42\u307e\u308a\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "m = cv2.moments(blob[1])\n", "x = m['m10']/m['m00']\n", "y = m['m01']/m['m00']\n", "x, y" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "(475.51380117999344, 499.64567582792256)" ] } ], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u4eca\u56de\u306f\u4f7f\u3044\u307e\u305b\u3093\u304c\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3059\u308b\u3068\u7269\u4f53\u306e\u8272\u3092\u6c42\u3081\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\u300c\u7dd1\u306e\u7bb1\u3060\u3051\u3092\u30d4\u30c3\u30af\u30a2\u30c3\u30d7\u300d\u306e\u3088\u3046\u306a\u30bf\u30b9\u30af\u306f\u3053\u306e\u60c5\u5831\u3092\u4f7f\u3046\u3053\u3068\u3067\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "mean = cv2.mean(hsv, mask=mask)\n", "mean" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 19, "text": [ "(59.01709998255104, 191.94870005234688, 157.47077298900717, 0.0)" ] } ], "prompt_number": 19 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "\u30cf\u30d5\u5909\u63db\u3092\u7528\u3044\u305f\u7269\u4f53\u306e\u59ff\u52e2\u63a8\u5b9a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u7269\u4f53\u3092\u5207\u308a\u51fa\u3057\u3066\u4f4d\u7f6e\u3092\u63a8\u5b9a\u3059\u308b\u3068\u3053\u308d\u307e\u3067\u306f\u3067\u304d\u307e\u3057\u305f\u304c\u30ed\u30dc\u30c3\u30c8\u30a2\u30fc\u30e0\u3067\u7269\u4f53\u3092\u5b89\u5b9a\u7684\u306b\u628a\u6301\u3059\u308b\u3053\u3068\u3092\u8003\u3048\u308b\u3068\u3001\u7269\u4f53\u306e\u59ff\u52e2\u306b\u5408\u308f\u305b\u3066\u624b\u3092\u4f38\u3070\u3057\u3066\u3042\u3052\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n", "\n", "\u7269\u4f53\u306e\u59ff\u52e2\u63a8\u5b9a\u3092\u884c\u3046\u65b9\u6cd5\u306f\u3044\u304f\u3064\u304b\u3042\u308a\u307e\u3059\u304c\u3001\u3053\u3053\u3067\u306f\u30cf\u30d5\u5909\u63db\u3092\u4f7f\u3063\u305f\u65b9\u6cd5\u3092\u7d39\u4ecb\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002\n", "\n", "\u30cf\u30d5\u5909\u63db\u3092\u884c\u3046\u305f\u3081\u306b\u306f\u307e\u305a\u7269\u4f53\u306e\u30a8\u30c3\u30b8\u753b\u50cf\u3092\u7528\u610f\u3057\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "im_edge = np.zeros(img.shape[:-1], np.uint8)\n", "cv2.drawContours(im_edge, blob, 1, 255, 2)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 20 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u7d30\u3081\u306b\u30a8\u30c3\u30b8\u3092\u51fa\u3057\u305f\u307b\u3046\u304c\u7cbe\u5ea6\u3088\u304f\u30cf\u30d5\u5909\u63db\u3067\u304d\u308b\u305f\u3081\u3084\u3084\u898b\u3065\u3089\u3044\u3068\u601d\u3044\u307e\u3059\u304c\u3001\u30a8\u30c3\u30b8\u753b\u50cf\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u753b\u50cf\u3067\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.imshow(im_edge)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 21, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 21 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u300c\u30cf\u30d5\u5909\u63db\u300d\u306f\u753b\u50cf\u4e0a\u306e\u5404\u70b9\u3092\u60f3\u5b9a\u3057\u3066\u3044\u308b\u56f3\u5f62\u3092\u69cb\u6210\u3059\u308b\u30d1\u30e9\u30e1\u30fc\u30bf\u7a7a\u9593\uff08\u30cf\u30d5\u7a7a\u9593\uff09\u306b\u5c04\u5f71\u3057\u3066\u3001\u305d\u306e\u5c04\u5f71\u3055\u308c\u305f\u70b9\u306e\u5bc6\u5ea6\uff08\u300c\u6295\u7968\u300d\u3068\u3082\u8a00\u3046\uff09\u304b\u3089\u5143\u306e\u56f3\u5f62\u3092\u63a8\u5b9a\u3059\u308b\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3067\u3059\u3002\n", "\n", "\u4eca\u56de\u306f\u7269\u4f53\u306e4\u8fba\u3092\u69cb\u6210\u3059\u308b\u76f4\u7dda\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u63a8\u5b9a\u3057\u307e\u3059\u3002\n", "OpenCV\u3067\u76f4\u7dda\u3092\u63a8\u5b9a\u3059\u308b\u30cf\u30d5\u5909\u63db\uff08\u6295\u7968\u6570100\u4ee5\u4e0b\u3067\u8db3\u5207\u308a\uff09\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u3066\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "lines = cv2.HoughLines(im_edge, 2, np.pi/180, 100)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 22 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u30d1\u30e9\u30e1\u30fc\u30bf\u304b\u3089\u753b\u50cf\u306b\u623b\u3059\u3068\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u5404\u8fba\u306e\u76f4\u7dda\u304c\u304d\u308c\u3044\u306b\u63a8\u5b9a\u3067\u304d\u3066\u3044\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Part of code is taken from: http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_imgproc/py_houghlines/py_houghlines.html\n", "im_out = np.zeros(img.shape, np.uint8)\n", "for rho,theta in lines[0]:\n", " a = np.cos(theta)\n", " b = np.sin(theta)\n", " x0 = a*rho\n", " y0 = b*rho\n", " x1 = int(x0 + 1000*(-b))\n", " y1 = int(y0 + 1000*(a))\n", " x2 = int(x0 - 1000*(-b))\n", " y2 = int(y0 - 1000*(a))\n", " cv2.line(im_out, (x1,y1), (x2,y2), (255,255,0), 2)\n", "plt.imshow(im_out)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 23, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nRK5CYII=\n", "text": [ "" ] } ], "prompt_number": 23 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u63a8\u5b9a\u3055\u308c\u305f\u5404\u76f4\u7dda\u306e\u89d2\u5ea6\u3092\u898b\u308b\u3068\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u5de6\u65b9\u5411\u3068\u53f3\u65b9\u5411\u306e\u76f4\u7dda\u306e\u89d2\u5ea6\u304c\u305d\u308c\u305e\u308c\u7b97\u51fa\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u30010.7\u524d\u5f8c\u306e\u5024\u30682.3\u524d\u5f8c\u306e\u5024\u306e2\u7fa4\u304c\u89b3\u5bdf\u3067\u304d\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "thetas = lines[:, :, 1]\n", "thetas" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 24, "text": [ "array([[ 2.3561945 , 0.73303831, 0.78539819, 0.73303831, 0.78539819,\n", " 2.33874106, 2.32128787, 2.30383468, 2.3561945 , 2.37364769,\n", " 2.33874106, 2.30383468, 0.71558499, 2.32128787, 2.28638124,\n", " 2.28638124, 2.37364769, 0.71558499, 2.39110112, 2.26892805,\n", " 2.39110112, 2.26892805, 0.68067843]], dtype=float32)" ] } ], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u3053\u3053\u3067\u306f$\\pi/2$\u3067\u95be\u5024\u3092\u3068\u3063\u30660.7\u524d\u5f8c\u306e\u7fa4\u304b\u3089\u59ff\u52e2\u3092\u63a8\u5b9a\u3057\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002\n", "\n", "\u4eca\u56de\u306f\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u3067\u751f\u6210\u3057\u305f\u753b\u50cf\u3092\u4f7f\u3046\u306e\u3067\u30ce\u30a4\u30ba\u304c\u5c11\u306a\u3044\u306e\u3067\u3059\u304c\u3001\u5b9f\u969b\u306e\u30c7\u30fc\u30bf\u3067\u306f\u3082\u3063\u3068\u591a\u304f\u306e\u30ce\u30a4\u30ba\u304c\u51fa\u3066\u304d\u307e\u3059\u3002\u5b9f\u969b\u306e\u753b\u50cf\u51e6\u7406\u306f\u3053\u308c\u3089\u30ce\u30a4\u30ba\u3068\u306e\u6226\u3044\u3067\u3059\u3002\u30ce\u30a4\u30ba\u306e\u591a\u3044\u30c7\u30fc\u30bf\u304b\u3089\u4ee3\u8868\u5024\u3092\u8a08\u7b97\u3059\u308b\u5834\u5408\u3001\u5e73\u5747\u5024\u3067\u306f\u306a\u304f\u4e2d\u592e\u5024\u3092\u4f7f\u3046\u3068\u591a\u304f\u306e\u5834\u5408\u3001\u826f\u3044\u7d50\u679c\u3092\u5f97\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "theta = np.median(thetas[thetas < np.pi/2])\n", "theta" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 25, "text": [ "0.73303831" ] } ], "prompt_number": 25 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "\u9023\u7d9a\u753b\u50cf\u3067\u306e\u51e6\u7406\u3068\u53ef\u8996\u5316" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u4e0a\u8a18\u3057\u305f\u51e6\u7406\u3092\u9023\u7d9a\u753b\u50cf\u306b\u9069\u7528\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import copy\n", "\n", "i = 0\n", "def animate(*args):\n", " global i, im, imgs\n", " \n", " # convert to HSV color space and binarize\n", " hsv = cv2.cvtColor(imgs[i], cv2.COLOR_RGB2HSV)\n", " ret, mask = cv2.threshold(hsv[:, :, 1], 100, 255, cv2.THRESH_BINARY)\n", " \n", " # split into blobs\n", " blob, idx = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)\n", " \n", " im_out = copy.deepcopy(imgs[i])\n", " for j in range(0, shape(blob)[0]):\n", " try:\n", " # calc moment of the blob\n", " m = cv2.moments(blob[j])\n", " x = int(m['m10']/m['m00'])\n", " y = int(m['m01']/m['m00'])\n", "\n", " # calc attitude of the object by using hough transform\n", " im_edge = np.zeros(img.shape[:-1], np.uint8)\n", " cv2.drawContours(im_edge, blob, j, 255, 1)\n", " lines = cv2.HoughLines(im_edge, 2, np.pi/180, 30)\n", " thetas = lines[:, :, 1]\n", " theta = np.median(thetas[thetas < np.pi/2])\n", "\n", " # create and show annotated image\n", " cv2.circle(im_out, (x, y), 20, (255,255,0), 10)\n", " cv2.line(im_out, (x, y), (x + int(150*np.sin(theta)), y - int(150*np.cos(theta))), (255,255,0), 10)\n", " except:\n", " pass\n", " im.set_array(im_out)\n", " i = i + 1\n", " return im,\n", "\n", "animation.FuncAnimation(fig, animate, frames=8, blit=True)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 26, "text": [ "" ] } ], "prompt_number": 26 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u8d64\u3044\u7269\u4f53\u3068\u7dd1\u306e\u7269\u4f53\u306b\u95a2\u3057\u3066\u306f\u3053\u308c\u3067\u5341\u5206\u306a\u611f\u3058\u3067\u3059\u3002\u898b\u5207\u308c\u3066\u3044\u308b\u9752\u3044\u7269\u4f53\u306b\u3064\u3044\u3066\u3082\u4e0a\u624b\u304f\u63a8\u5b9a\u3067\u304d\u3066\u3044\u307e\u3059\u304c\u3001\u4f5c\u3063\u305f\u672c\u4eba\u304b\u3089\u3059\u308b\u3068\u5c11\u3005\u5371\u306a\u3063\u304b\u3057\u3044\u611f\u3058\u3067\u3059\u3001\u3001\u3001\u3002\u5de5\u5834\u306a\u3069\u306e\u74b0\u5883\u3092\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u3067\u304d\u308b\u73fe\u5834\u3067\u3042\u308c\u3070\u7269\u4f53\u3092\u304d\u308c\u3044\u306b\u30ab\u30e1\u30e9\u89d2\u306b\u53ce\u3081\u308b\u305f\u3081\u306e\u30ac\u30a4\u30c9\u3092\u4ed8\u3051\u308b\u306a\u3069\u306e\u624b\u3042\u3066\u3092\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u304c\u3001\u3088\u308a\u5e83\u3044\u5fdc\u7528\u3092\u8003\u3048\u308b\u3068\u4e0d\u5b89\u5b9a\u306a\u63a8\u5b9a\u7d50\u679c\u306e\u68c4\u5374\u3092\u884c\u3046\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3082\u4ed8\u52a0\u3059\u308b\u3068\u3088\u308a\u5b89\u5fc3\u3067\u304d\u308b\u3067\u3057\u3087\u3046\uff08\u30ce\u30fc\u30c8\u306e\u7d19\u9762\u304c\u5c3d\u304d\u3066\u3057\u307e\u3063\u305f\u306e\u3067\u4eca\u56de\u306b\u3064\u3044\u3066\u3053\u3053\u307e\u3067\u3067\u304a\u958b\u304d\u306b\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\uff09\u3002" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u6b21\u56de\u306f\u753b\u50cf\u51e6\u7406\u306b\u3088\u308b\u7269\u4f53\u306e\u4f4d\u7f6e\u59ff\u52e2\u63a8\u5b9a\u306e\u7d50\u679c\u3092\u4f7f\u3063\u3066\u3001\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u4e0a\u306e\u30ed\u30dc\u30c3\u30c8\u30a2\u30fc\u30e0\u3067\u7269\u4f53\u3092\u628a\u6301\u3057\u3066\u307f\u307e\u3059\u3002" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "\u304a\u307e\u3051" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u4eca\u56de\u4f7f\u3063\u305f\u8272\u306b\u3088\u308b\u80cc\u666f\u306e\u5206\u96e2\u306f\u30c6\u30ec\u30d3\u3067\u3088\u304f\u898b\u308b\u300c\u30af\u30ed\u30de\u30ad\u30fc\u5408\u6210\u300d\u3068\u5168\u304f\u540c\u3058\u539f\u7406\u3067\u3059\uff08\u30af\u30ed\u30de\u30ad\u30fc\u5408\u6210\u3067\u306f\u80cc\u666f\u306b\u5f69\u5ea6\u304c\u4f4e\u304f\u5206\u96e2\u3057\u3084\u3059\u3044\u30af\u30ed\u30de\u8272\u3092\u4f7f\u3044\u307e\u3059\uff09\u3002\n", "\n", "\u753b\u50cf\u51e6\u7406\u306e\u6b74\u53f2\u304b\u3089\u8a00\u3046\u3068\u3001\u3053\u306e\u5f8c\u3001Viola-Jones\u304c\u8d77\u3053\u3057\u305f\u9769\u547d\u306b\u3088\u308a\u3001\u4eca\u56de\u306e\u3088\u3046\u306a\u80cc\u666f\u8272\u3092\u4eee\u5b9a\u3057\u305f\u7269\u4f53\u8a8d\u8b58\u65b9\u6cd5\u306f\u904e\u53bb\u306e\u6280\u8853\u3068\u306a\u3063\u3066\u3057\u307e\u3046\u306e\u3067\u3059\u304c\u3001\u753b\u50cf\u51e6\u7406\u306e\u57fa\u672c\u3068\u3057\u3066\u304a\u3055\u3048\u305f\u4e0a\u3067\u6b21\u306b\u9032\u3093\u3067\u3044\u304d\u307e\u3057\u3087\u3046\u3002" ] }, { "cell_type": "code", "collapsed": false, "input": [ "img2 = np.ones(img.shape, np.uint8) * 255\n", "cv2.circle(img2, (500, 400), 200, (100,100,100), 100)\n", "\n", "i = 0\n", "def animate(*args):\n", " global i, im, imgs, img2\n", " hsv = cv2.cvtColor(imgs[i], cv2.COLOR_RGB2HSV)\n", " ret, mask = cv2.threshold(hsv[:, :, 1], 100, 255, cv2.THRESH_BINARY)\n", " blob, idx = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)\n", " mask = np.zeros(img.shape[:-1], np.uint8)\n", " for j in range(0, shape(blob)[0]):\n", " cv2.drawContours(mask, blob, j, 255, -1)\n", " im.set_array(np.where(cv2.merge((mask,mask,mask)) == 255, imgs[i], img2))\n", " i = i + 1\n", " return im,\n", "\n", "animation.FuncAnimation(fig, animate, frames=8, blit=True)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 27, "text": [ "" ] } ], "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 27 } ], "metadata": {} } ] }