Skip to content
Snippets Groups Projects
NerveSegmentation3D.ipynb 606 KiB
Newer Older
  • Learn to ignore specific revisions
  • {
     "cells": [
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "# 3D Nerve Surface Segmentation "
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "**Add Proper References Here**\n",
        "\n",
        "**NOTICE:** This notebook assumes you are familiar layered surface detection on tubular objects introduced in the *NerveSegmentation2D* notebook. "
       ]
      },
      {
       "cell_type": "code",
       "execution_count": 1,
       "metadata": {},
       "outputs": [],
       "source": [
        "import os\n",
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "from matplotlib.image import imsave \n",
        "from skimage.io import imread\n",
        "from scipy.ndimage.interpolation import map_coordinates\n",
        "\n",
        "from qimtools import visualization, inspection, io\n",
        "from slgbuilder import GraphObject,MaxflowBuilder"
       ]
      },
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
    
    RTuxen's avatar
    RTuxen committed
        "The data is a small stack of nerve images."
    
       ]
      },
      {
       "cell_type": "code",
    
    RTuxen's avatar
    RTuxen committed
       "execution_count": 2,
    
       "metadata": {},
       "outputs": [
        {
         "name": "stdout",
         "output_type": "stream",
         "text": [
          "(200, 200, 10)\n"
         ]
        }
       ],
       "source": [
        "in_dir = 'data/'\n",
        "Vol_path = os.path.join(in_dir, 'nerves3D.tiff')\n",
        "\n",
        "# Load the data\n",
        "vol = io.Volume( Vol_path )\n",
        "\n",
        "# Convert the stack of 2D slices to a 3D volume\n",
        "vol = vol.concatenate().astype(np.int32)\n",
        "vol = np.transpose(vol,(1,2,0))\n",
        "\n",
        "print(vol.shape)"
       ]
      },
      {
       "cell_type": "code",
    
    RTuxen's avatar
    RTuxen committed
       "execution_count": 3,
    
       "metadata": {},
       "outputs": [],
       "source": [
        "%matplotlib notebook"
       ]
      },
      {
       "cell_type": "code",
    
    RTuxen's avatar
    RTuxen committed
       "execution_count": 4,
    
    82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865
       "metadata": {
        "scrolled": true
       },
       "outputs": [
        {
         "data": {
          "application/javascript": [
           "/* Put everything inside the global mpl namespace */\n",
           "window.mpl = {};\n",
           "\n",
           "\n",
           "mpl.get_websocket_type = function() {\n",
           "    if (typeof(WebSocket) !== 'undefined') {\n",
           "        return WebSocket;\n",
           "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
           "        return MozWebSocket;\n",
           "    } else {\n",
           "        alert('Your browser does not have WebSocket support. ' +\n",
           "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
           "              'Firefox 4 and 5 are also supported but you ' +\n",
           "              'have to enable WebSockets in about:config.');\n",
           "    };\n",
           "}\n",
           "\n",
           "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
           "    this.id = figure_id;\n",
           "\n",
           "    this.ws = websocket;\n",
           "\n",
           "    this.supports_binary = (this.ws.binaryType != undefined);\n",
           "\n",
           "    if (!this.supports_binary) {\n",
           "        var warnings = document.getElementById(\"mpl-warnings\");\n",
           "        if (warnings) {\n",
           "            warnings.style.display = 'block';\n",
           "            warnings.textContent = (\n",
           "                \"This browser does not support binary websocket messages. \" +\n",
           "                    \"Performance may be slow.\");\n",
           "        }\n",
           "    }\n",
           "\n",
           "    this.imageObj = new Image();\n",
           "\n",
           "    this.context = undefined;\n",
           "    this.message = undefined;\n",
           "    this.canvas = undefined;\n",
           "    this.rubberband_canvas = undefined;\n",
           "    this.rubberband_context = undefined;\n",
           "    this.format_dropdown = undefined;\n",
           "\n",
           "    this.image_mode = 'full';\n",
           "\n",
           "    this.root = $('<div/>');\n",
           "    this._root_extra_style(this.root)\n",
           "    this.root.attr('style', 'display: inline-block');\n",
           "\n",
           "    $(parent_element).append(this.root);\n",
           "\n",
           "    this._init_header(this);\n",
           "    this._init_canvas(this);\n",
           "    this._init_toolbar(this);\n",
           "\n",
           "    var fig = this;\n",
           "\n",
           "    this.waiting = false;\n",
           "\n",
           "    this.ws.onopen =  function () {\n",
           "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
           "            fig.send_message(\"send_image_mode\", {});\n",
           "            if (mpl.ratio != 1) {\n",
           "                fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
           "            }\n",
           "            fig.send_message(\"refresh\", {});\n",
           "        }\n",
           "\n",
           "    this.imageObj.onload = function() {\n",
           "            if (fig.image_mode == 'full') {\n",
           "                // Full images could contain transparency (where diff images\n",
           "                // almost always do), so we need to clear the canvas so that\n",
           "                // there is no ghosting.\n",
           "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
           "            }\n",
           "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
           "        };\n",
           "\n",
           "    this.imageObj.onunload = function() {\n",
           "        fig.ws.close();\n",
           "    }\n",
           "\n",
           "    this.ws.onmessage = this._make_on_message_function(this);\n",
           "\n",
           "    this.ondownload = ondownload;\n",
           "}\n",
           "\n",
           "mpl.figure.prototype._init_header = function() {\n",
           "    var titlebar = $(\n",
           "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
           "        'ui-helper-clearfix\"/>');\n",
           "    var titletext = $(\n",
           "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
           "        'text-align: center; padding: 3px;\"/>');\n",
           "    titlebar.append(titletext)\n",
           "    this.root.append(titlebar);\n",
           "    this.header = titletext[0];\n",
           "}\n",
           "\n",
           "\n",
           "\n",
           "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
           "\n",
           "}\n",
           "\n",
           "\n",
           "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
           "\n",
           "}\n",
           "\n",
           "mpl.figure.prototype._init_canvas = function() {\n",
           "    var fig = this;\n",
           "\n",
           "    var canvas_div = $('<div/>');\n",
           "\n",
           "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
           "\n",
           "    function canvas_keyboard_event(event) {\n",
           "        return fig.key_event(event, event['data']);\n",
           "    }\n",
           "\n",
           "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
           "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
           "    this.canvas_div = canvas_div\n",
           "    this._canvas_extra_style(canvas_div)\n",
           "    this.root.append(canvas_div);\n",
           "\n",
           "    var canvas = $('<canvas/>');\n",
           "    canvas.addClass('mpl-canvas');\n",
           "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
           "\n",
           "    this.canvas = canvas[0];\n",
           "    this.context = canvas[0].getContext(\"2d\");\n",
           "\n",
           "    var backingStore = this.context.backingStorePixelRatio ||\n",
           "\tthis.context.webkitBackingStorePixelRatio ||\n",
           "\tthis.context.mozBackingStorePixelRatio ||\n",
           "\tthis.context.msBackingStorePixelRatio ||\n",
           "\tthis.context.oBackingStorePixelRatio ||\n",
           "\tthis.context.backingStorePixelRatio || 1;\n",
           "\n",
           "    mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
           "\n",
           "    var rubberband = $('<canvas/>');\n",
           "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
           "\n",
           "    var pass_mouse_events = true;\n",
           "\n",
           "    canvas_div.resizable({\n",
           "        start: function(event, ui) {\n",
           "            pass_mouse_events = false;\n",
           "        },\n",
           "        resize: function(event, ui) {\n",
           "            fig.request_resize(ui.size.width, ui.size.height);\n",
           "        },\n",
           "        stop: function(event, ui) {\n",
           "            pass_mouse_events = true;\n",
           "            fig.request_resize(ui.size.width, ui.size.height);\n",
           "        },\n",
           "    });\n",
           "\n",
           "    function mouse_event_fn(event) {\n",
           "        if (pass_mouse_events)\n",
           "            return fig.mouse_event(event, event['data']);\n",
           "    }\n",
           "\n",
           "    rubberband.mousedown('button_press', mouse_event_fn);\n",
           "    rubberband.mouseup('button_release', mouse_event_fn);\n",
           "    // Throttle sequential mouse events to 1 every 20ms.\n",
           "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
           "\n",
           "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
           "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
           "\n",
           "    canvas_div.on(\"wheel\", function (event) {\n",
           "        event = event.originalEvent;\n",
           "        event['data'] = 'scroll'\n",
           "        if (event.deltaY < 0) {\n",
           "            event.step = 1;\n",
           "        } else {\n",
           "            event.step = -1;\n",
           "        }\n",
           "        mouse_event_fn(event);\n",
           "    });\n",
           "\n",
           "    canvas_div.append(canvas);\n",
           "    canvas_div.append(rubberband);\n",
           "\n",
           "    this.rubberband = rubberband;\n",
           "    this.rubberband_canvas = rubberband[0];\n",
           "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
           "    this.rubberband_context.strokeStyle = \"#000000\";\n",
           "\n",
           "    this._resize_canvas = function(width, height) {\n",
           "        // Keep the size of the canvas, canvas container, and rubber band\n",
           "        // canvas in synch.\n",
           "        canvas_div.css('width', width)\n",
           "        canvas_div.css('height', height)\n",
           "\n",
           "        canvas.attr('width', width * mpl.ratio);\n",
           "        canvas.attr('height', height * mpl.ratio);\n",
           "        canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
           "\n",
           "        rubberband.attr('width', width);\n",
           "        rubberband.attr('height', height);\n",
           "    }\n",
           "\n",
           "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
           "    // upon first draw.\n",
           "    this._resize_canvas(600, 600);\n",
           "\n",
           "    // Disable right mouse context menu.\n",
           "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
           "        return false;\n",
           "    });\n",
           "\n",
           "    function set_focus () {\n",
           "        canvas.focus();\n",
           "        canvas_div.focus();\n",
           "    }\n",
           "\n",
           "    window.setTimeout(set_focus, 100);\n",
           "}\n",
           "\n",
           "mpl.figure.prototype._init_toolbar = function() {\n",
           "    var fig = this;\n",
           "\n",
           "    var nav_element = $('<div/>');\n",
           "    nav_element.attr('style', 'width: 100%');\n",
           "    this.root.append(nav_element);\n",
           "\n",
           "    // Define a callback function for later on.\n",
           "    function toolbar_event(event) {\n",
           "        return fig.toolbar_button_onclick(event['data']);\n",
           "    }\n",
           "    function toolbar_mouse_event(event) {\n",
           "        return fig.toolbar_button_onmouseover(event['data']);\n",
           "    }\n",
           "\n",
           "    for(var toolbar_ind in mpl.toolbar_items) {\n",
           "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
           "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
           "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
           "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
           "\n",
           "        if (!name) {\n",
           "            // put a spacer in here.\n",
           "            continue;\n",
           "        }\n",
           "        var button = $('<button/>');\n",
           "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
           "                        'ui-button-icon-only');\n",
           "        button.attr('role', 'button');\n",
           "        button.attr('aria-disabled', 'false');\n",
           "        button.click(method_name, toolbar_event);\n",
           "        button.mouseover(tooltip, toolbar_mouse_event);\n",
           "\n",
           "        var icon_img = $('<span/>');\n",
           "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
           "        icon_img.addClass(image);\n",
           "        icon_img.addClass('ui-corner-all');\n",
           "\n",
           "        var tooltip_span = $('<span/>');\n",
           "        tooltip_span.addClass('ui-button-text');\n",
           "        tooltip_span.html(tooltip);\n",
           "\n",
           "        button.append(icon_img);\n",
           "        button.append(tooltip_span);\n",
           "\n",
           "        nav_element.append(button);\n",
           "    }\n",
           "\n",
           "    var fmt_picker_span = $('<span/>');\n",
           "\n",
           "    var fmt_picker = $('<select/>');\n",
           "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
           "    fmt_picker_span.append(fmt_picker);\n",
           "    nav_element.append(fmt_picker_span);\n",
           "    this.format_dropdown = fmt_picker[0];\n",
           "\n",
           "    for (var ind in mpl.extensions) {\n",
           "        var fmt = mpl.extensions[ind];\n",
           "        var option = $(\n",
           "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
           "        fmt_picker.append(option);\n",
           "    }\n",
           "\n",
           "    // Add hover states to the ui-buttons\n",
           "    $( \".ui-button\" ).hover(\n",
           "        function() { $(this).addClass(\"ui-state-hover\");},\n",
           "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
           "    );\n",
           "\n",
           "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
           "    nav_element.append(status_bar);\n",
           "    this.message = status_bar[0];\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
           "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
           "    // which will in turn request a refresh of the image.\n",
           "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.send_message = function(type, properties) {\n",
           "    properties['type'] = type;\n",
           "    properties['figure_id'] = this.id;\n",
           "    this.ws.send(JSON.stringify(properties));\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.send_draw_message = function() {\n",
           "    if (!this.waiting) {\n",
           "        this.waiting = true;\n",
           "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
           "    }\n",
           "}\n",
           "\n",
           "\n",
           "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
           "    var format_dropdown = fig.format_dropdown;\n",
           "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
           "    fig.ondownload(fig, format);\n",
           "}\n",
           "\n",
           "\n",
           "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
           "    var size = msg['size'];\n",
           "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
           "        fig._resize_canvas(size[0], size[1]);\n",
           "        fig.send_message(\"refresh\", {});\n",
           "    };\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
           "    var x0 = msg['x0'] / mpl.ratio;\n",
           "    var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
           "    var x1 = msg['x1'] / mpl.ratio;\n",
           "    var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
           "    x0 = Math.floor(x0) + 0.5;\n",
           "    y0 = Math.floor(y0) + 0.5;\n",
           "    x1 = Math.floor(x1) + 0.5;\n",
           "    y1 = Math.floor(y1) + 0.5;\n",
           "    var min_x = Math.min(x0, x1);\n",
           "    var min_y = Math.min(y0, y1);\n",
           "    var width = Math.abs(x1 - x0);\n",
           "    var height = Math.abs(y1 - y0);\n",
           "\n",
           "    fig.rubberband_context.clearRect(\n",
           "        0, 0, fig.canvas.width / mpl.ratio, fig.canvas.height / mpl.ratio);\n",
           "\n",
           "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
           "    // Updates the figure title.\n",
           "    fig.header.textContent = msg['label'];\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
           "    var cursor = msg['cursor'];\n",
           "    switch(cursor)\n",
           "    {\n",
           "    case 0:\n",
           "        cursor = 'pointer';\n",
           "        break;\n",
           "    case 1:\n",
           "        cursor = 'default';\n",
           "        break;\n",
           "    case 2:\n",
           "        cursor = 'crosshair';\n",
           "        break;\n",
           "    case 3:\n",
           "        cursor = 'move';\n",
           "        break;\n",
           "    }\n",
           "    fig.rubberband_canvas.style.cursor = cursor;\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
           "    fig.message.textContent = msg['message'];\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
           "    // Request the server to send over a new figure.\n",
           "    fig.send_draw_message();\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
           "    fig.image_mode = msg['mode'];\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.updated_canvas_event = function() {\n",
           "    // Called whenever the canvas gets updated.\n",
           "    this.send_message(\"ack\", {});\n",
           "}\n",
           "\n",
           "// A function to construct a web socket function for onmessage handling.\n",
           "// Called in the figure constructor.\n",
           "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
           "    return function socket_on_message(evt) {\n",
           "        if (evt.data instanceof Blob) {\n",
           "            /* FIXME: We get \"Resource interpreted as Image but\n",
           "             * transferred with MIME type text/plain:\" errors on\n",
           "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
           "             * to be part of the websocket stream */\n",
           "            evt.data.type = \"image/png\";\n",
           "\n",
           "            /* Free the memory for the previous frames */\n",
           "            if (fig.imageObj.src) {\n",
           "                (window.URL || window.webkitURL).revokeObjectURL(\n",
           "                    fig.imageObj.src);\n",
           "            }\n",
           "\n",
           "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
           "                evt.data);\n",
           "            fig.updated_canvas_event();\n",
           "            fig.waiting = false;\n",
           "            return;\n",
           "        }\n",
           "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
           "            fig.imageObj.src = evt.data;\n",
           "            fig.updated_canvas_event();\n",
           "            fig.waiting = false;\n",
           "            return;\n",
           "        }\n",
           "\n",
           "        var msg = JSON.parse(evt.data);\n",
           "        var msg_type = msg['type'];\n",
           "\n",
           "        // Call the  \"handle_{type}\" callback, which takes\n",
           "        // the figure and JSON message as its only arguments.\n",
           "        try {\n",
           "            var callback = fig[\"handle_\" + msg_type];\n",
           "        } catch (e) {\n",
           "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
           "            return;\n",
           "        }\n",
           "\n",
           "        if (callback) {\n",
           "            try {\n",
           "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
           "                callback(fig, msg);\n",
           "            } catch (e) {\n",
           "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
           "            }\n",
           "        }\n",
           "    };\n",
           "}\n",
           "\n",
           "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
           "mpl.findpos = function(e) {\n",
           "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
           "    var targ;\n",
           "    if (!e)\n",
           "        e = window.event;\n",
           "    if (e.target)\n",
           "        targ = e.target;\n",
           "    else if (e.srcElement)\n",
           "        targ = e.srcElement;\n",
           "    if (targ.nodeType == 3) // defeat Safari bug\n",
           "        targ = targ.parentNode;\n",
           "\n",
           "    // jQuery normalizes the pageX and pageY\n",
           "    // pageX,Y are the mouse positions relative to the document\n",
           "    // offset() returns the position of the element relative to the document\n",
           "    var x = e.pageX - $(targ).offset().left;\n",
           "    var y = e.pageY - $(targ).offset().top;\n",
           "\n",
           "    return {\"x\": x, \"y\": y};\n",
           "};\n",
           "\n",
           "/*\n",
           " * return a copy of an object with only non-object keys\n",
           " * we need this to avoid circular references\n",
           " * http://stackoverflow.com/a/24161582/3208463\n",
           " */\n",
           "function simpleKeys (original) {\n",
           "  return Object.keys(original).reduce(function (obj, key) {\n",
           "    if (typeof original[key] !== 'object')\n",
           "        obj[key] = original[key]\n",
           "    return obj;\n",
           "  }, {});\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.mouse_event = function(event, name) {\n",
           "    var canvas_pos = mpl.findpos(event)\n",
           "\n",
           "    if (name === 'button_press')\n",
           "    {\n",
           "        this.canvas.focus();\n",
           "        this.canvas_div.focus();\n",
           "    }\n",
           "\n",
           "    var x = canvas_pos.x * mpl.ratio;\n",
           "    var y = canvas_pos.y * mpl.ratio;\n",
           "\n",
           "    this.send_message(name, {x: x, y: y, button: event.button,\n",
           "                             step: event.step,\n",
           "                             guiEvent: simpleKeys(event)});\n",
           "\n",
           "    /* This prevents the web browser from automatically changing to\n",
           "     * the text insertion cursor when the button is pressed.  We want\n",
           "     * to control all of the cursor setting manually through the\n",
           "     * 'cursor' event from matplotlib */\n",
           "    event.preventDefault();\n",
           "    return false;\n",
           "}\n",
           "\n",
           "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
           "    // Handle any extra behaviour associated with a key event\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.key_event = function(event, name) {\n",
           "\n",
           "    // Prevent repeat events\n",
           "    if (name == 'key_press')\n",
           "    {\n",
           "        if (event.which === this._key)\n",
           "            return;\n",
           "        else\n",
           "            this._key = event.which;\n",
           "    }\n",
           "    if (name == 'key_release')\n",
           "        this._key = null;\n",
           "\n",
           "    var value = '';\n",
           "    if (event.ctrlKey && event.which != 17)\n",
           "        value += \"ctrl+\";\n",
           "    if (event.altKey && event.which != 18)\n",
           "        value += \"alt+\";\n",
           "    if (event.shiftKey && event.which != 16)\n",
           "        value += \"shift+\";\n",
           "\n",
           "    value += 'k';\n",
           "    value += event.which.toString();\n",
           "\n",
           "    this._key_event_extra(event, name);\n",
           "\n",
           "    this.send_message(name, {key: value,\n",
           "                             guiEvent: simpleKeys(event)});\n",
           "    return false;\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
           "    if (name == 'download') {\n",
           "        this.handle_save(this, null);\n",
           "    } else {\n",
           "        this.send_message(\"toolbar_button\", {name: name});\n",
           "    }\n",
           "};\n",
           "\n",
           "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
           "    this.message.textContent = tooltip;\n",
           "};\n",
           "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
           "\n",
           "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
           "\n",
           "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
           "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
           "    // object with the appropriate methods. Currently this is a non binary\n",
           "    // socket, so there is still some room for performance tuning.\n",
           "    var ws = {};\n",
           "\n",
           "    ws.close = function() {\n",
           "        comm.close()\n",
           "    };\n",
           "    ws.send = function(m) {\n",
           "        //console.log('sending', m);\n",
           "        comm.send(m);\n",
           "    };\n",
           "    // Register the callback with on_msg.\n",
           "    comm.on_msg(function(msg) {\n",
           "        //console.log('receiving', msg['content']['data'], msg);\n",
           "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
           "        ws.onmessage(msg['content']['data'])\n",
           "    });\n",
           "    return ws;\n",
           "}\n",
           "\n",
           "mpl.mpl_figure_comm = function(comm, msg) {\n",
           "    // This is the function which gets called when the mpl process\n",
           "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
           "\n",
           "    var id = msg.content.data.id;\n",
           "    // Get hold of the div created by the display call when the Comm\n",
           "    // socket was opened in Python.\n",
           "    var element = $(\"#\" + id);\n",
           "    var ws_proxy = comm_websocket_adapter(comm)\n",
           "\n",
           "    function ondownload(figure, format) {\n",
           "        window.open(figure.imageObj.src);\n",
           "    }\n",
           "\n",
           "    var fig = new mpl.figure(id, ws_proxy,\n",
           "                           ondownload,\n",
           "                           element.get(0));\n",
           "\n",
           "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
           "    // web socket which is closed, not our websocket->open comm proxy.\n",
           "    ws_proxy.onopen();\n",
           "\n",
           "    fig.parent_element = element.get(0);\n",
           "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
           "    if (!fig.cell_info) {\n",
           "        console.error(\"Failed to find cell for figure\", id, fig);\n",
           "        return;\n",
           "    }\n",
           "\n",
           "    var output_index = fig.cell_info[2]\n",
           "    var cell = fig.cell_info[0];\n",
           "\n",
           "};\n",
           "\n",
           "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
           "    var width = fig.canvas.width/mpl.ratio\n",
           "    fig.root.unbind('remove')\n",
           "\n",
           "    // Update the output cell to use the data from the current canvas.\n",
           "    fig.push_to_output();\n",
           "    var dataURL = fig.canvas.toDataURL();\n",
           "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
           "    // the notebook keyboard shortcuts fail.\n",
           "    IPython.keyboard_manager.enable()\n",
           "    $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
           "    fig.close_ws(fig, msg);\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.close_ws = function(fig, msg){\n",
           "    fig.send_message('closing', msg);\n",
           "    // fig.ws.close()\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
           "    // Turn the data on the canvas into data in the output cell.\n",
           "    var width = this.canvas.width/mpl.ratio\n",
           "    var dataURL = this.canvas.toDataURL();\n",
           "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.updated_canvas_event = function() {\n",
           "    // Tell IPython that the notebook contents must change.\n",
           "    IPython.notebook.set_dirty(true);\n",
           "    this.send_message(\"ack\", {});\n",
           "    var fig = this;\n",
           "    // Wait a second, then push the new image to the DOM so\n",
           "    // that it is saved nicely (might be nice to debounce this).\n",
           "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
           "}\n",
           "\n",
           "mpl.figure.prototype._init_toolbar = function() {\n",
           "    var fig = this;\n",
           "\n",
           "    var nav_element = $('<div/>');\n",
           "    nav_element.attr('style', 'width: 100%');\n",
           "    this.root.append(nav_element);\n",
           "\n",
           "    // Define a callback function for later on.\n",
           "    function toolbar_event(event) {\n",
           "        return fig.toolbar_button_onclick(event['data']);\n",
           "    }\n",
           "    function toolbar_mouse_event(event) {\n",
           "        return fig.toolbar_button_onmouseover(event['data']);\n",
           "    }\n",
           "\n",
           "    for(var toolbar_ind in mpl.toolbar_items){\n",
           "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
           "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
           "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
           "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
           "\n",
           "        if (!name) { continue; };\n",
           "\n",
           "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
           "        button.click(method_name, toolbar_event);\n",
           "        button.mouseover(tooltip, toolbar_mouse_event);\n",
           "        nav_element.append(button);\n",
           "    }\n",
           "\n",
           "    // Add the status bar.\n",
           "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
           "    nav_element.append(status_bar);\n",
           "    this.message = status_bar[0];\n",
           "\n",
           "    // Add the close button to the window.\n",
           "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
           "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
           "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
           "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
           "    buttongrp.append(button);\n",
           "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
           "    titlebar.prepend(buttongrp);\n",
           "}\n",
           "\n",
           "mpl.figure.prototype._root_extra_style = function(el){\n",
           "    var fig = this\n",
           "    el.on(\"remove\", function(){\n",
           "\tfig.close_ws(fig, {});\n",
           "    });\n",
           "}\n",
           "\n",
           "mpl.figure.prototype._canvas_extra_style = function(el){\n",
           "    // this is important to make the div 'focusable\n",
           "    el.attr('tabindex', 0)\n",
           "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
           "    // off when our div gets focus\n",
           "\n",
           "    // location in version 3\n",
           "    if (IPython.notebook.keyboard_manager) {\n",
           "        IPython.notebook.keyboard_manager.register_events(el);\n",
           "    }\n",
           "    else {\n",
           "        // location in version 2\n",
           "        IPython.keyboard_manager.register_events(el);\n",
           "    }\n",
           "\n",
           "}\n",
           "\n",
           "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
           "    var manager = IPython.notebook.keyboard_manager;\n",
           "    if (!manager)\n",
           "        manager = IPython.keyboard_manager;\n",
           "\n",
           "    // Check for shift+enter\n",
           "    if (event.shiftKey && event.which == 13) {\n",
           "        this.canvas_div.blur();\n",
           "        // select the cell after this one\n",
           "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
           "        IPython.notebook.select(index + 1);\n",
           "    }\n",
           "}\n",
           "\n",
           "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
           "    fig.ondownload(fig, null);\n",
           "}\n",
           "\n",
           "\n",
           "mpl.find_output_cell = function(html_output) {\n",
           "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
           "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
           "    // IPython event is triggered only after the cells have been serialised, which for\n",
           "    // our purposes (turning an active figure into a static one), is too late.\n",
           "    var cells = IPython.notebook.get_cells();\n",
           "    var ncells = cells.length;\n",
           "    for (var i=0; i<ncells; i++) {\n",
           "        var cell = cells[i];\n",
           "        if (cell.cell_type === 'code'){\n",
           "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
           "                var data = cell.output_area.outputs[j];\n",
           "                if (data.data) {\n",
           "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
           "                    data = data.data;\n",
           "                }\n",
           "                if (data['text/html'] == html_output) {\n",
           "                    return [cell, data, j];\n",
           "                }\n",
           "            }\n",
           "        }\n",
           "    }\n",
           "}\n",
           "\n",
           "// Register the function which deals with the matplotlib target/channel.\n",
           "// The kernel may be null if the page has been refreshed.\n",
           "if (IPython.notebook.kernel != null) {\n",
           "    IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
           "}\n"
          ],
          "text/plain": [
           "<IPython.core.display.Javascript object>"
          ]
         },
         "metadata": {},
         "output_type": "display_data"
        },
        {
         "data": {
          "text/html": [
    
    RTuxen's avatar
    RTuxen committed
           "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAgAElEQVR4Xu3XMQ0AAAzDsJU/6bHI5RGoZO3JzhEgQIAAAQIECBAgQCASWLRjhgABAgQIECBAgAABAidAPAEBAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQAH/z5sAAAWaSURBVIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECAgQPwAAQIECBAgQIAAAQKZgADJqA0RIECAAAECBAgQICBA/AABAgQIECBAgAABApmAAMmoDREgQIAAAQIECBAgIED8AAECBAgQIECAAAECmYAAyagNESBAgAABAgQIECDwym8CWWFsf00AAAAASUVORK5CYII=\" width=\"640\">"
    
          ],
          "text/plain": [
           "<IPython.core.display.HTML object>"
          ]
         },
         "metadata": {},
         "output_type": "display_data"
        },
        {
         "name": "stdout",
         "output_type": "stream",
         "text": [
          "Instructions:\n",
          "    Controls\n",
          "    --------\n",
          "        'up-arrow'    : Next slice in volume\n",
          "        'down-arrow'  : Previous slice in volume\n",
          "        'right-arrow' : +10 slices\n",
          "        'left-arrow'  : -10 slices\n",
          "        'PgUp'        : +50 slices\n",
          "        'PgDown'      : -50 slices\n",
          "\n",
          "        scroll wheel  : previous/next slice\n",
          "        \n"
         ]
        }
       ],
       "source": [
        "visualization.show_vol( vol, axis=2 )"
       ]
      },
      {
       "cell_type": "code",
    
    RTuxen's avatar
    RTuxen committed
       "execution_count": 5,
    
       "metadata": {},
       "outputs": [],
       "source": [
        "%matplotlib inline"
       ]
      },
    
    RTuxen's avatar
    RTuxen committed
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "The objects (nerves) in the volume have two different sizes which need to be handled differently. With small nerves marked in red an large in blue."
       ]
      },
    
      {
       "cell_type": "code",
    
    RTuxen's avatar
    RTuxen committed
       "execution_count": 6,
    
       "metadata": {
        "scrolled": true
       },
       "outputs": [
        {
         "data": {
    
    RTuxen's avatar
    RTuxen committed
          "image/png": "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\n",
    
          "text/plain": [
           "<Figure size 432x288 with 1 Axes>"
          ]
         },
         "metadata": {
          "needs_background": "light"
         },
         "output_type": "display_data"
        },
        {
         "name": "stdout",
         "output_type": "stream",
         "text": [
          "Number of objects: 25\n"
         ]
        }
       ],
       "source": [
        "# Get centers\n",
        "path = in_dir+'nerveCenters.png'\n",
        "centers = imread(path)[:,:,0]\n",
        "\n",
        "centers_small = np.transpose(np.where(centers==1))\n",
        "centers_large = np.transpose(np.where(centers==2))\n",
        "\n",
        "# Show volume slice with centers.\n",
    
    RTuxen's avatar
    RTuxen committed
        "plt.imshow(vol[...,3], cmap='gray')\n",
    
        "plt.scatter(centers_small[..., 1], centers_small[..., 0], color='red', s=6)\n",
        "plt.scatter(centers_large[..., 1], centers_large[..., 0], color='blue', s=6)\n",
    
    RTuxen's avatar
    RTuxen committed
        "plt.title('Slice 3')\n",
    
        "plt.show()\n",
        "\n",
        "print(f'Number of objects: {len(centers_small)+len(centers_large)}')"
       ]
      },
    
    RTuxen's avatar
    RTuxen committed
      {
       "cell_type": "markdown",
       "metadata": {},
       "source": [
        "As with the 2D example radial resampling is used for segmentation."
       ]
      },
    
      {
       "cell_type": "code",
    
    RTuxen's avatar
    RTuxen committed
       "execution_count": 7,
    
       "metadata": {},
       "outputs": [],
       "source": [
        "def unfold_image(img, center, max_dists=None, r_min=1, r_max=20, angles=30, steps=15):\n",
        "\n",
        "    # Sampling angles and radii.\n",
        "    angles = np.linspace(0, 2*np.pi, angles, endpoint=False)\n",
        "    distances = np.linspace(r_min, r_max, steps, endpoint=True)\n",
        "    \n",
        "    if max_dists is not None:\n",
        "        max_dists.append(np.max(distances))\n",
        "    \n",
        "    # Get angles.\n",
        "    angles_cos = np.cos(angles)\n",
        "    angles_sin = np.sin(angles)\n",
        "    \n",
        "    # Calculate points positions.\n",
        "    x_pos = center[0] + np.outer(angles_cos, distances)\n",
        "    y_pos = center[1] + np.outer(angles_sin, distances)\n",
        "    \n",
        "    # Create list of sampling points.\n",
        "    sampling_points = np.array([x_pos, y_pos]).transpose()\n",
        "    sampling_shape = sampling_points.shape\n",
        "    sampling_points_flat = sampling_points.reshape((-1, 2))\n",
        "    \n",
        "    # Sample from image.\n",
        "    samples = map_coordinates(img, sampling_points_flat.transpose(), mode='nearest')\n",
        "    samples = samples.reshape(sampling_shape[:2])\n",
        "        \n",
        "    return samples, sampling_points\n",
        "\n",
        "def draw_segmentations(data, helper,layer=0):\n",