Created
January 3, 2016 16:06
-
-
Save engyasin/b2d4efc94b1039250d34 to your computer and use it in GitHub Desktop.
Documents/myPythonFiles/my_notebooks/Lesson_20.ipynb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "# اشتقاق الامامية التفاعلي باستخدام خوارزمية Grabcut:" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## الهدف:" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "** سنتعلم بهذا الفصل: **\n\n* خوارزمية grabcut لاشتقاق الاجسام من الصور.\n\n* سننشئ تطبيق تفاعلي باستخدامها" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## النظرية:\nالورقة الاصلية خلف هذه الخوارزمية كانت بعنوان : \" اشتقاق الامامية التفاعلي باستخدام graph cuts التفاعلية\"\nحيث كان الهدف ان تتم الخوارزمية باقل تفاعل من المستخدم. \n\nوطريقة عملها من وجهة نظر المستخدم , هي ان يرسم المستخدم مستطيلاً حول الجسم (الامامية) بحيث يحتوي كامل الجسم .ومن ثم يتكرر تطبيق الخوارزمية حتى الوصول لافضل نتيجة , لكن احياناً قد لا نحصل على النتيجة المرغوبة بسبب الاخطاء الحاصلة عند تعليم الخلفية كامامية او العكس مثلاً..\n\nسنحتاج في هذه الحالة لاعادة تعليم للنتيجة مثلاً التحديد يدوياً بضربات تحدد اماكن الاخطاء بالناتج , وبعدها نحدث لنحصل على نتائج ادق .\n\nحيث كما المثال ادناه , نرسم اولاً مستطيل حول الجسم ومن ثم هناك لمسات اخيرة باللون الابيض لتحديد الامامية والاسود لتحديد الخلفية ومن ثم نحصل على نتيجة جيدة." | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"collapsed": false | |
}, | |
"cell_type": "code", | |
"source": "from IPython.display import Image\nImage(\"messi.jpg\")", | |
"execution_count": 1, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"image/jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcG\nBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwM\nDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCADoAcIDASIA\nAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA\nAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3\nODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm\np6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA\nAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx\nBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK\nU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3\nuLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD8pfjv\no/8AZvwc0ea2/wCeEckleM+HPEn2OKvW/wDhPE8bfBuC2f8AefZoPLkrxDRdN/tLWYbdP+elZ4fn\nDGezmfRH7PtnNr2jX2pb/wDVx1znw11/+2PjxHC7/wDLeOP/AMiV2Olf8Ws+GsnyeX9pjrxn4c+K\nv7H+KsGpb/L/AH/mUYf3/aBiKf7unTP228L/ABCTwR8M9NRH/eSQJWifincxRxvvr5w+H3xmh8Yw\n6UjzeZHJHHX0dpkNhrthA8KR/uq/mfMOF8X9bqezp+0OzEVKcKdP2Zci+Ks3yPv/AHdRy/Gz7H5f\nnTf6z/V1Yi0azhtv9THXlvxL8R6Tps32DZH58kn7v/plXl1OG8XD95UoGeHqe0qHif8AwUn1n/hN\n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\n", | |
"text/plain": "<IPython.core.display.Image object>" | |
}, | |
"metadata": {}, | |
"execution_count": 1 | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "ولكن ما الذي حل بالخلفية ؟\n\n* اولا يرسم المستخدم مستطيل وكل شيء خارجه يعد خلفية اكيدة , ولذلك وجب تضمين الجسم كاملاً ضمنه , واي ادخال كهذا من قبل المستخدم يبقى كذلك بالنتيجة دون تغيير .\n\n* ويقوم الحاسوب بعدها بتحديد اولي حيث الخلفية والامامية اعتماداً على مدخلاتنا.\n\n* يستخدم الان نموذج خلائطي غاوسي GMM لنمذجة الخلفية والامامية.\n\n* تتعلم ال GMM وتنشأ توزعاً جديداً للبكسلات بالاعتماد على البيانات المقدمة , حيث تصنف البكسلات غير المحددة اما كامامية اوخلفية محتملتين , بالاعتماد على علاقاتها مع البكسلات المحددة بدلالة احصاءات الالوان (مثل التجميع بعناقيد)\n\n* ويتم بناء ال graph من توزيع البكسلات هذا وتتمثل العقد بالبكسلات مع اضافة عقدة **المصدر** وترتبط بها بكسلات الامامية وعقدة ** المصرف ** وترتبط بها بكسلات الخلفية .\n\n* اوزان الحواف التي تصل البكسلات بعقدة المنبع/المصرف متناسبة مع احتمالية كون البكسل ينتمي للامامية / الخلفية . تحدد الاوزان بين البكسلات بمعلومات الحافة او تشابه البكسل , فاذا كان هناك فرق كبير بالوان البكسلات المترابطة فالحافة بينهم ستكتسب وزناً اخف.\n\n* وعندها تطبق خوارزمية mincut لتقطيع ال graph . حيث تقطعه لعقدتي منبع ومصرف بتابع كلفة اصغري. وتابع الكلفة هو مجموع كل اوزان الحواف المقطوعة , وبعد القطع تقسم كل البكسلات اما لامامية او لخلفية حسب ارتباطها.\n\n* تستمر العملية حتى تقارب التصنيف .\n\nيتم توضيح العملية بالصورة التالية\n\n<img src= 'http://www.cs.ru.ac.za/research/g02m1682/Research_files/image002.jpg'>" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## مثال:" | |
}, | |
{ | |
"metadata": { | |
"collapsed": true | |
}, | |
"cell_type": "markdown", | |
"source": "ان تطبيق خوارزمية Grab cut في OpenCV يتم عن طريق التابع cv2.grabcut حيث متغيراته:\n\n* img : الصورة الاصل\n\n* mask : القناع للصورة والذي يحدد المناطق الامامية والخلفية أو احتماليتها , وهذا يتم بالاعلام التالية : cv2.GC_BGD , cv2.GC_FGD , cv2.GC_PR_BGD ,cv2.GC_PR_FGD. او نمرر 0,1,2,3 على الترتيب ببساطة .\n\n* rect: وهي احداثيات المستطيل المحيط بالامامية بصيغة (x,y,w,h).\n\n* fgdModel , bgdModel : وهي مصفوفات تستخدمها الخوارزمية داخلياً , يمكنك فقط تمرير مصفوفات صفرية بصيغة np.float64 وبحجم (1,65).\n\n* iter_count : عدد المرات التي يجب تكرار الخوارزمية فيها.\n\n* mode : يمكن ان تكون cv2.GC_INIT_WITH_RECT , cv2.GC_INIT_WITH_MASK او وضعاً مركباً والذي يحدد ما اذا كان سيتم رسم مستطيل او لمسات اخيرة معدلة.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "أولا سنبدأ بوضع المستطيل حيث : نحمل الصورة , وننشئ قناعاً مماثلاً وكذلك ننشأ fgdModel , bgdModel , ويعطي بارامترات المستطيل وهذا كله مباشر , لنفرض اننا سنشغل الخوارزمية ل 5 مرات .\n\nوال Mode يجب ان يكون cv2.GC_INIT_WITH_RECT بما اننا نبدأ بمستطيل ومن ثم نشغل ال grabcut.\n\nوفي الصورة الجديدة المعدلة للقناع ستكون البكسلات معدلة ب 4 أعلام , محددة اما للخلفية أو الامامية كما أعلاه.\n\nوبعدها نعدله بحيث ان البكسلات بأرقام 0 أو 2 تكون خلفية اكيدة , \nاما البكسلات بارقام 1 و 3 تكون امامية اكيدة , وبعد جهوز القناع نضربه بالصورة الاصلية لنحصل على نتيجة التقطيع المرغوية كالكود التالي:" | |
}, | |
{ | |
"metadata": { | |
"collapsed": false, | |
"trusted": false | |
}, | |
"cell_type": "code", | |
"source": "import numpy as np\nimport cv2\nfrom matplotlib import pyplot as plt\n%matplotlib inline\n\nimg = cv2.imread('wt.jpg')\nmask = np.zeros(img.shape[:2],np.uint8)\n\nbgdModel = np.zeros((1,65),np.float64)\nfgdModel = np.zeros((1,65),np.float64)\n\nrect = (150,60,600,566)\ncv2.grabCut(img,mask,rect,\n bgdModel,fgdModel,5,cv2.GC_INIT_WITH_RECT)\n\nmask2 = np.where((mask==2)|(mask==0),0,1).astype('uint8')\nimg = img*mask2[:,:,np.newaxis]\n\nplt.imshow(img),plt.colorbar(),plt.xticks([])\nplt.yticks([])\nplt.show()\nNone", | |
"execution_count": 5, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": "<matplotlib.figure.Figure at 0x83ea850>" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "لنلحظ النتيجة , نرى بانها جيدة ولكن هناك بعض المشاكل مثلاً دائرة على اليسار وايضاً الاسهم بالاسفل , اذا اردنا تحسينها علينا استخدام الطريقة الثانيةوتكون بتحديد القناع اولاً , عبر اداة خاصة حيث نحدد الاجسام الامامية الاكيدة باللون الابيض والخلفية الاكيدة بالاسود ونكتب مايلي:" | |
}, | |
{ | |
"metadata": { | |
"collapsed": false, | |
"trusted": false | |
}, | |
"cell_type": "code", | |
"source": "# newmask is the mask image I manually labelled\nnewmask = cv2.imread('wtmask.jpg',0)\n\n# whereever it is marked white (sure foreground), change mask=1\n# whereever it is marked black (sure background), change mask=0\nmask[newmask == 0] = 0\nmask[newmask == 255] = 1\n\ncv2.grabCut(img,mask,None,\n bgdModel,fgdModel,\n 5,cv2.GC_INIT_WITH_MASK)\n\nmask = np.where((mask==2)|(mask==0),0,1).astype('uint8')\nimg = img*mask[:,:,np.newaxis]\n\nplt.figure(figsize=(18,9))\n\nplt.subplot(121)\nplt.imshow(mask),plt.xticks([]),\nplt.yticks([])\n\nplt.subplot(122)\nplt.imshow(img),plt.xticks([]),\nplt.yticks([])\n\nplt.show()\nNone", | |
"execution_count": 13, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA/oAAAFLCAYAAABm7/dYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XucbNld1/3PWmvvXVV9Odc5M5M7iZlcJiSBcDMCvoLw\nhCcioCgveEBBQEQhKgQRFWMIN0UEFGNULioRjHkiaoiYh0BACBAJ5EKuZDK5TGaSmTlnzqXP6UvV\n3nut3/PH3ru6uk+dc/r06a7q0/19v16V6a6u2rX2rppJfdflt5yZISIiIiIiIiKHg593A0RERERE\nRERk7yjoi4iIiIiIiBwiCvoiIiIiIiIih4iCvoiIiIiIiMghoqAvIiIiIiIicohk1/ujc04l+UVE\nRK7BzNy823AU6PuIiIjItU37PnLdoN94xX60RURE5Db3ynk3QERERGQqTd0XEREREREROUQU9EVE\nREREREQOEQV9ERERERERkUNEQV9ERERERETkEFHQFxERERERETlEFPRFREREREREDhEFfRERERER\nEZFDREFfRERERERE5BBR0BcRERERERE5RBT0RURERERERA4RBX0RERERERGRQ0RBX0REREREROQQ\nUdAXEREREREROUQU9EVEREREREQOEQV9ERERERERkUNEQV9ERERERETkEFHQFxERERERETlEFPRF\nREREREREDhEFfREREREREZFDREFfRERERERE5BBR0BcRERERERE5RBT0RURERERERA4RBX0RERER\nERGRQ0RBX0REREREROQQUdAXEREREREROUQU9EVEREREREQOEQV9ERERERERkUNEQV9ERERERETk\nEFHQFxERERERETlEFPRFREREREREDhEFfREREREREZFDREFfRERERERE5BBR0BcRERERERE5RBT0\nRURERERERA4RBX0RERERERGRQ0RBX0REREREROQQUdAXEREREREROUQU9EVEREREREQOEQV9ERER\nERERkUNEQV9ERERERETkEFHQFxERERERETlEFPRFREREREREDhEFfREREREREZFDREFfRERERERE\n5BBR0BcRERERERE5RBT0RURERERERA4RBX0RERERERGRQySbdwNEDpIlVm/4mKfxUf4C/30GrWmM\n6PEqXgrAi3kzb+bFO3reGosYbj+bJiIiIvvg2Mkz1/27A5bPPIFv+Qc/xtLSEsONIUvLy8S63nyQ\n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\ni5UVcKwAAAAASUVORK5CYII=\n", | |
"text/plain": "<matplotlib.figure.Figure at 0x89691b0>" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "ونلاحظ ان النتيجة رائعة , وكل مافعلناه اننا استخدمنا صورة قناع مع تحديد مناطق الخلفية والجسم يدوياً بدون تحديد المستطيل , ومن ثم طبقنا خوارزمية grabcut مباشرة." | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## مراجع اضافية:\n\n## تمارين:\n\n1. تتضمن امثلة OpenCV مثالاً تفاعلياً لاستخدام الخوارزمية السابقة ,ولذلك يمكنك تعلمها منه أو مشاهدة مقطع اليوتوب عنه .\n\n2. وهنا ايضاً يمكنك انشاء تطبيق يمكّنك من رسم مستطيل تفاعلياً , ويسمح لك ايضاً برسم خطوط يدوياً ولعرض نتحكم به هن طريق Trackbar .\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "** المثال كما التالي: **" | |
}, | |
{ | |
"metadata": { | |
"collapsed": true, | |
"trusted": false | |
}, | |
"cell_type": "code", | |
"source": "#!/usr/bin/env python\n'''\n===============================================================================\nInteractive Image Segmentation using GrabCut algorithm.\n\nThis sample shows interactive image segmentation using grabcut algorithm.\n\nUSAGE :\n python grabcut.py <filename>\n\nREADME FIRST:\n Two windows will show up, one for input and one for output.\n\n At first, in input window, draw a rectangle around the object using\nmouse right button. Then press 'n' to segment the object (once or a few times)\nFor any finer touch-ups, you can press any of the keys below and draw lines on\nthe areas you want. Then again press 'n' for updating the output.\n\nKey '0' - To select areas of sure background\nKey '1' - To select areas of sure foreground\nKey '2' - To select areas of probable background\nKey '3' - To select areas of probable foreground\n\nKey 'n' - To update the segmentation\nKey 'r' - To reset the setup\nKey 's' - To save the results\n===============================================================================\n'''\n\nimport numpy as np\nimport cv2\nimport sys\n\nBLUE = [255,0,0] # rectangle color\nRED = [0,0,255] # PR BG\nGREEN = [0,255,0] # PR FG\nBLACK = [0,0,0] # sure BG\nWHITE = [255,255,255] # sure FG\n\nDRAW_BG = {'color' : BLACK, 'val' : 0}\nDRAW_FG = {'color' : WHITE, 'val' : 1}\nDRAW_PR_FG = {'color' : GREEN, 'val' : 3}\nDRAW_PR_BG = {'color' : RED, 'val' : 2}\n\n# setting up flags\nrect = (0,0,1,1)\ndrawing = False # flag for drawing curves\nrectangle = False # flag for drawing rect\nrect_over = False # flag to check if rect drawn\nrect_or_mask = 100 # flag for selecting rect or mask mode\nvalue = DRAW_FG # drawing initialized to FG\nthickness = 3 # brush thickness\n\ndef onmouse(event,x,y,flags,param):\n global img,img2,drawing,value,mask,rectangle,rect,rect_or_mask,ix,iy,rect_over\n\n # Draw Rectangle\n if event == cv2.EVENT_RBUTTONDOWN:\n rectangle = True\n ix,iy = x,y\n\n elif event == cv2.EVENT_MOUSEMOVE:\n if rectangle == True:\n img = img2.copy()\n cv2.rectangle(img,(ix,iy),(x,y),BLUE,2)\n rect = (ix,iy,abs(ix-x),abs(iy-y))\n rect_or_mask = 0\n\n elif event == cv2.EVENT_RBUTTONUP:\n rectangle = False\n rect_over = True\n cv2.rectangle(img,(ix,iy),(x,y),BLUE,2)\n rect = (ix,iy,abs(ix-x),abs(iy-y))\n rect_or_mask = 0\n print \" Now press the key 'n' a few times until no further change \\n\"\n\n # draw touchup curves\n\n if event == cv2.EVENT_LBUTTONDOWN:\n if rect_over == False:\n print \"first draw rectangle \\n\"\n else:\n drawing = True\n cv2.circle(img,(x,y),thickness,value['color'],-1)\n cv2.circle(mask,(x,y),thickness,value['val'],-1)\n\n elif event == cv2.EVENT_MOUSEMOVE:\n if drawing == True:\n cv2.circle(img,(x,y),thickness,value['color'],-1)\n cv2.circle(mask,(x,y),thickness,value['val'],-1)\n\n elif event == cv2.EVENT_LBUTTONUP:\n if drawing == True:\n drawing = False\n cv2.circle(img,(x,y),thickness,value['color'],-1)\n cv2.circle(mask,(x,y),thickness,value['val'],-1)\n\n# print documentation\nprint __doc__\n\n# Loading images\nif len(sys.argv) == 2:\n filename = sys.argv[1] # for drawing purposes\nelse:\n print \"No input image given, so loading default image, lena.jpg \\n\"\n print \"Correct Usage : python grabcut.py <filename> \\n\"\n filename = '../cpp/lena.jpg'\n\nimg = cv2.imread(filename)\nimg2 = img.copy() # a copy of original image\nmask = np.zeros(img.shape[:2],dtype = np.uint8) # mask initialized to PR_BG\noutput = np.zeros(img.shape,np.uint8) # output image to be shown\n\n# input and output windows\ncv2.namedWindow('output')\ncv2.namedWindow('input')\ncv2.setMouseCallback('input',onmouse)\ncv2.moveWindow('input',img.shape[1]+10,90)\n\nprint \" Instructions : \\n\"\nprint \" Draw a rectangle around the object using right mouse button \\n\"\n\nwhile(1):\n\n cv2.imshow('output',output)\n cv2.imshow('input',img)\n k = 0xFF & cv2.waitKey(1)\n\n # key bindings\n if k == 27: # esc to exit\n break\n elif k == ord('0'): # BG drawing\n print \" mark background regions with left mouse button \\n\"\n value = DRAW_BG\n elif k == ord('1'): # FG drawing\n print \" mark foreground regions with left mouse button \\n\"\n value = DRAW_FG\n elif k == ord('2'): # PR_BG drawing\n value = DRAW_PR_BG\n elif k == ord('3'): # PR_FG drawing\n value = DRAW_PR_FG\n elif k == ord('s'): # save image\n bar = np.zeros((img.shape[0],5,3),np.uint8)\n res = np.hstack((img2,bar,img,bar,output))\n cv2.imwrite('grabcut_output.png',res)\n print \" Result saved as image \\n\"\n elif k == ord('r'): # reset everything\n print \"resetting \\n\"\n rect = (0,0,1,1)\n drawing = False\n rectangle = False\n rect_or_mask = 100\n rect_over = False\n value = DRAW_FG\n img = img2.copy()\n mask = np.zeros(img.shape[:2],dtype = np.uint8) # mask initialized to PR_BG\n output = np.zeros(img.shape,np.uint8) # output image to be shown\n elif k == ord('n'): # segment the image\n print \"\"\" For finer touchups, mark foreground and background after pressing keys 0-3\n and again press 'n' \\n\"\"\"\n if (rect_or_mask == 0): # grabcut with rect\n bgdmodel = np.zeros((1,65),np.float64)\n fgdmodel = np.zeros((1,65),np.float64)\n cv2.grabCut(img2,mask,rect,bgdmodel,fgdmodel,1,cv2.GC_INIT_WITH_RECT)\n rect_or_mask = 1\n elif rect_or_mask == 1: # grabcut with mask\n bgdmodel = np.zeros((1,65),np.float64)\n fgdmodel = np.zeros((1,65),np.float64)\n cv2.grabCut(img2,mask,rect,bgdmodel,fgdmodel,1,cv2.GC_INIT_WITH_MASK)\n\n mask2 = np.where((mask==1) + (mask==3),255,0).astype('uint8')\n output = cv2.bitwise_and(img2,img2,mask=mask2)\n\ncv2.destroyAllWindows()", | |
"execution_count": null, | |
"outputs": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"name": "python2", | |
"display_name": "Python 2", | |
"language": "python" | |
}, | |
"latex_envs": { | |
"current_citInitial": 1, | |
"eqLabelWithNumbers": true, | |
"cite_by": "apalike", | |
"bibliofile": "biblio.bib", | |
"eqNumInitial": 0 | |
}, | |
"language_info": { | |
"mimetype": "text/x-python", | |
"nbconvert_exporter": "python", | |
"name": "python", | |
"pygments_lexer": "ipython2", | |
"version": "2.7.9", | |
"file_extension": ".py", | |
"codemirror_mode": { | |
"version": 2, | |
"name": "ipython" | |
} | |
}, | |
"toc": { | |
"toc_number_sections": true, | |
"toc_window_display": false, | |
"toc_cell": false, | |
"toc_threshold": 4 | |
}, | |
"gist": { | |
"id": "", | |
"data": { | |
"description": "Documents/myPythonFiles/my_notebooks/Lesson_20.ipynb", | |
"public": true | |
} | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment