From e3a29ae464f5c6838df881f3406e06af6be9203e Mon Sep 17 00:00:00 2001 From: seregakol007 Date: Sun, 20 Nov 2016 15:49:46 +0300 Subject: [PATCH] corrected --- .gitignore | 1 + notebooks/geometry_and_monocular.ipynb | 2508 +++++++++++++++++++++++- 2 files changed, 2444 insertions(+), 65 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0641303 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*ipynb_checkpoints* \ No newline at end of file diff --git a/notebooks/geometry_and_monocular.ipynb b/notebooks/geometry_and_monocular.ipynb index 9d5f57c..d5dbf2a 100644 --- a/notebooks/geometry_and_monocular.ipynb +++ b/notebooks/geometry_and_monocular.ipynb @@ -34,14 +34,56 @@ }, { "cell_type": "code", - "execution_count": 276, + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "numpy found, version is 1.10.4\n", + "matplotlib found, version is 1.5.1\n", + "scipy found, version is 0.17.0\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "print 'numpy found, version is ', np.__version__\n", + "\n", + "import matplotlib as mpl\n", + "import matplotlib.pyplot as plt # pyplot - обертка matplotlib для интерактивного графопостроения.\n", + "print 'matplotlib found, version is ', mpl.__version__\n", + "\n", + "import scipy\n", + "print 'scipy found, version is ', scipy.__version__" + ] + }, + { + "cell_type": "code", + "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy.random\n", - "import matplotlib.pyplot as plt" + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import math" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%matplotlib notebook" ] }, { @@ -54,7 +96,7 @@ }, { "cell_type": "code", - "execution_count": 277, + "execution_count": 3, "metadata": { "collapsed": false }, @@ -66,30 +108,796 @@ }, { "cell_type": "code", - "execution_count": 278, + "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\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 = $('
');\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", + " 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", + " this.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", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\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 rubberband = $('');\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);\n", + " canvas.attr('height', height);\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 = $('
')\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 = $('');\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 = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var 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", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\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= 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": [ - "" + "" ] }, - "execution_count": 282, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" }, { "data": { - "image/png": "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\n", + "text/html": [ + "" + ], "text/plain": [ - "" + "" ] }, "metadata": {}, "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -245,7 +1819,7 @@ }, { "cell_type": "code", - "execution_count": 283, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -261,7 +1835,7 @@ }, { "cell_type": "code", - "execution_count": 284, + "execution_count": 15, "metadata": { "collapsed": false, "scrolled": true @@ -269,23 +1843,789 @@ "outputs": [ { "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\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 = $('
');\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", + " 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", + " this.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", + " '
');\n", + " var titletext = $(\n", + " '
');\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 = $('
');\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 = $('');\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 rubberband = $('');\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);\n", + " canvas.attr('height', height);\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 = $('
')\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 = $('