├── .ipynb_checkpoints ├── CNN Classifier-checkpoint.ipynb ├── Contrast_Ultimate-checkpoint.ipynb ├── Image Segmenter-checkpoint.ipynb ├── K-Means-checkpoint.ipynb ├── Line_Segmenter-checkpoint.ipynb ├── Untitled-checkpoint.ipynb └── Word_Segmenter-checkpoint.ipynb ├── CNN Classifier.ipynb ├── Character_Segmenter_Utilities.py ├── Character_Segmenter_Utilities.pyc ├── Contrast_Ultimate.ipynb ├── Contrast_Ultimate.py ├── Image Segmenter.ipynb ├── K-Means.ipynb ├── KMeansUtilities.py ├── KMeansUtilities.pyc ├── LICENSE ├── Line_Segmenter.ipynb ├── Line_Segmenter_Utilities.py ├── Line_Segmenter_Utilities.pyc ├── README.md ├── Untitled.ipynb ├── WordSegmenterUtilities.py ├── WordSegmenterUtilities.pyc ├── Word_Segmenter.ipynb ├── __pycache__ ├── Character_Segmenter_Utilities.cpython-35.pyc ├── Contrast_Ultimate.cpython-35.pyc ├── KMeansUtilities.cpython-35.pyc ├── Line_Segmenter_Utilities.cpython-35.pyc └── WordSegmenterUtilities.cpython-35.pyc ├── checkpoint ├── cnn_model.tfl.data-00000-of-00001 ├── cnn_model.tfl.index ├── cnn_model.tfl.meta ├── img.jpg ├── super_contrast.jpg ├── temp.jpg ├── temp4.jpg ├── tempo.png ├── temps.jpg ├── tempt.png └── tempxyz.jpg /.ipynb_checkpoints/Contrast_Ultimate-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 18, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import scipy.io\n", 10 | "import matplotlib.pyplot as pyplot\n", 11 | "import matplotlib.cm as cm\n", 12 | "import numpy as np\n", 13 | "from PIL import Image, ImageEnhance" 14 | ] 15 | }, 16 | { 17 | "cell_type": "code", 18 | "execution_count": 34, 19 | "metadata": {}, 20 | "outputs": [ 21 | { 22 | "name": "stderr", 23 | "output_type": "stream", 24 | "text": [ 25 | "/usr/local/lib/python3.5/dist-packages/ipykernel_launcher.py:1: DeprecationWarning: `imread` is deprecated!\n", 26 | "`imread` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.\n", 27 | "Use ``imageio.imread`` instead.\n", 28 | " \"\"\"Entry point for launching an IPython kernel.\n" 29 | ] 30 | }, 31 | { 32 | "data": { 33 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKwAAAD8CAYAAADqv08vAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsvWmsZdd5nvmuM093rJGlosgiXZKsUoklidQAtw0p1uBYkBQZ7UBqwxICA8oPC+hG+oflBoykE7jh/pEICDox4KCJ2EIihe6OYVqmRdOmW2LLlmjH4qCBU3MSb81Vdzr3zOfs/nHOs/a7dxWrziUl6pLgAgr31rn77GGtb3i/9/vWt0OSJHp9vD5eLaPwk76B18frYzfjdYF9fbyqxusC+/p4VY3XBfb18aoarwvs6+NVNV4X2NfHq2q84gIbQviFEMLjIYSnQghfeKWv//p4dY/wSvKwIYSipCckfUjSC5L+VtKnkyT5/it2E6+PV/V4pS3suyU9lSTJ00mSDCR9RdInXuF7eH28ikfpFb7eGyT90P7/gqT3+AEhhM9J+pwklcvld62srMS/JUmiEIJCCHLPUC6XNR6PNZlMrnpRvsPvSZIoSRIVCoUrfpcUf+d8IQQVi0VNJpN4D4zxeKxCoZD5/mQyyRzj1/H74Th+LxQK8Xscz3X9eD7nHn1O/Hx+Tv7Gs47H4/i7fz6ZTFQsFjUejzPX5r6YE87nx3NfPsf5e/C5nkwmGo/HqlQqWltbu5gkyYHrCdArLbDXHUmS/J6k35OkQ4cOJR/72Me0srKiVqulXq+nEIIKhYLa7bYajUZ88Mlkol6vJ0kqlUpxgpeWlrS+vq5CoaBGo6HhcJhZGB+FwtThDIdDVatVbW5uqlKpqFgsql6vq9frqVgsqlgsqlAoqNfrqVQqxXMmSaJ6va7RaKTJZKJKpSJJ6vV6KpfLKpfLGg6HGo/HqtVq6vV6qlarkqTRaKR6va4QQryOj1arpcFgoH6/r+FwqEqlEs83mUxULpfjd0qlkvr9vur1ura3t1Wr1eJ58ko3Ho81Ho8VQoj3O5lMVK1W1e/3VSgUVK1WNR6P1ev11O/31Wg0VCgU4t+Hw6GKxaI6nY7q9Xp89vF4HNeiWCxqc3NTpdJU5FA4BPi3fuu3nptHPl5pSLAm6Ub7/9HZZy86mJCNjQ0lSaLhcKhOp6O1tTV1u11tbGwohKB+v69ms6lSqRSFS5oKS71eV7lc1mAwiAuF9cBCNhqN+H/OV6/XVSgU1Gw21ev1omJ0u91oGSSp0WhoeXlZ5XI5XpfrFAoFlUolFYtF9Xo9jcdjLS8vazweq1qtqlwuq1arqVarqVgsqt/vq1gsqtlsZgSw2+2qUCioVqtpYWFBhUJBnU4nWnc8TKlU0ng81mg0kiTVajX1+/0opLVaTYVCQTs7O5pMJur3+6rValpeXo73wX0vLS1F4ee4er0enxvlRUFRJKxzq9WK59zY2JAkLSwsaGFhIQoyx847XmmB/VtJx0MIx0IIFUmfknT3tb7QbDY1mUw0Go2iwPV6Pf30T/+0arWaWq2WkiRRtVqNwtLpdNRqtSQpLqS7S4SpWq2q0WhESJEkSRTY4XAYF5jfK5WKqtWqKpWKBoOBtre3ValU4j31ej0lSaLRaKTRaKQkSdTr9dRoNKJlkaTt7W1Vq9W42FgqlGcymejChQvRqlUqFZVKpSjwnLdcLsfn3N7e1nA4jMLFM9ZqNVUqlYygJkmiUqmkQqGghYWFeCzzgEUcDAZRGKWp4gwGA124cEH9fl+S1O/3NRqNNB6PtbS0FOepXC6rVCpFxVlcXFS1WlWn04nXSJIkY/3nGa+owCZJMpL0eUn3SvqBpLuSJPnetb5TLpejJiK4pVJJ29vbGo/H6vf7Wl9fV6lUUqPRUKVSUbvd1mAwULfbVbfbjW4UYcWF4577/b56vZ46nU5085VKJVomLEm5XI4WsFKpqNFoKISgUqkU4UC/31en01GxWNTOzo6WlpYkKWK5SqWiJEnU6XQ0Go2iaxyPxxoOh5IUraYktdvtKKRYeO5BkjY3N+N5eR5JGgwGajabCiGoWq1qMBhEfDkcDrW6uhrnFwzKKBaLUaGq1apGo1E0CIVCIcKTTqejcrkcvcFwOFS3243XLxaLajQakhQFE8sKRKrX6/G55xmvOIZNkuQeSffMe/xoNNJwOFS5XI4BAMJTr9dVLBajwCBgi4uLEROyGGBGrG29Xo8aD54FE6MUW1tbqlarGazFKJfL2tnZUa/X02g0ipYWrI1F29zcjIvOfeI1er2eBoOBarVa9CDNZjPCjcFgoJWVlQgHcM8IA3PS7/dVqVTiOSqViiaTidrtdrwfBEpShD/VajWjwHgbDAJzhtCxFlhorDUGZWlpKeLZ4XCora0t1Wq1qKzNZjN+p1AoaDQaZTzePONVk+lKkkStVitiNAIQgoYkSVQulzMWUUqDCtxpo9HQwsJCtFYhBDWbTUlpIIBrrNVqcXI7nY46nU5czMFgEBcSgQTHERSCk7E63W5XxWJR6+vrGg6HKpVKEXJI08DKg6hms5k5DssENOF5palrLpVKKpfLajQaMZjDZaPoCJdH8VwPN18qlbS8vBz/3+v14vMMh8OMJUdhpCkU6/f72traigpAgMo8EsQCM4AH8449LbAhhIijiMpxo5VKJbrter2uS5cuxYi22+1GygWLI0n1ej0GJAQ4o9FIGxsb6nQ6USDAotLUPReLRS0sLESBxgqCwfhcUhSCRqOh0WiUwWghBLXbbVUqlUj14CGwXmBWFK3VamlhYSHiYuAAHgBFATuCdQkcO51OvKednR01Go1MkMe1J5OJtra2IkTa2NjQYDDIBHN4IpiawWAQmQqUfDweR7iBt+J+HLMSQO527GmBxfWAB4nO0VaEEbfV7XY1HA4zkSyBGi6W8+JWq9WqarVaFDAWR5riLrAlOJNFYGEHg8EV9BbQAQWRplQZiueYHAUajUbqdruZ84cQNBqN1G63Y/CCgMCGgLd5Vg88m81mtHIoHdidIHEymWhxcVHSVKHwHpKiYcCtc24pZV82NzfVarWiAEJv4ZVgNbDkBF3uCbn+PGNPC6yUkuzlcjlG9UTlRLrValXVajUKG0FUo9FQs9mM1g8M6QGYUz1oPJjL+VUnzjkPwrazsyMpta75qFtSxjU6l4vwAVtQlkKhELHrxsZGvBaCtr6+HoWce/IER6vViseD41FylJDrAltQeKJ82A3mzKEESgds6vV6EdqEENTtdqP1brfbarfbMX4giHOoMO94VQgsVovFw+VfunQpE/0yQVgmjsMaehYIHDwcDrW9vZ3BYgQzTnU5ic65wGGNRkP9fj9+j4W/ePFivK/hcBhxd6fT0WAwiIIeQlCj0dDKykqEI1hb6KtarRaVFuwKq0FEj5BjDcvlcrTMTvRzLhiYdrsdnxvs2+12tb29HV05xoE4wJMzQAUSBr1eT81mMypzr9fTmTNnogHodrvR2wDJ5h17LtPlw4Vt//79cUIJEsBOBw8e1OnTp+MCABX4O0KMq6vX65nUrqcWS6WS2u22VlZWMhYLAYXaYSEdMqAw5XI5BhgoD5YJ9813uDbumevAcIxGI62vr0dWBAvpWSnYAFdQzzRBP12+fDmS9kAtx58oFwyClHLGzClzXC6X4/U5DwqMcgyHQ62srEQhxpJ6+hYrPe/Y8xZWmrry9fX1aAlCCNra2ooTdPHixYi3EEomBzqIqBcXyOeekMAS+uJLitgNgfLMEVbXgy5cr6RoSQhwPJtGRg7LjhdBUNvtdoQIZN0kRWEBvyKECDUwZHt7O7Ijly5dipQT80AwxJyQDQQGOHsAVYZ19ygfag5aDKGGrtvY2NCBAwfifXNvZNs6nc7csrCnBRa+tFwua2FhQVtbW2q329GlYCl88phQXDDHXr58OaYWobwGg4EKhUL8DrgLq84ADw4Gg7hoMAH9fj/+jgBgISXFgIX7c4qJhUKQdnZ2opJATZFyRjAkxewU/C/P6XDE+WmCHxIbuHasIufZ2NiIzAt4E0WAVoRtQMGxlngRzouVLxaLWl5e1vb2ts6ePRshDYp44cKF1x6GxeIsLi5magGSJFG73c7k+SHCpWnhCxYQOIGQVqvVaFFxcU7dAD06nU7kUbEyRNnnzp2Li4Kw46oJqFh0BJ3rQjERrEDPgT03NzejEGCVeS6oPgQXxU2SJBamdDqdKFiO0zudTuRSh8Oh1tfXJU0xa7PZ1GAwiFAFkh+LDfW3vLwcsbHXO1QqlQxD4/OLl0Opua9qtapLly7NLQ97WmARSNywpIgf4Rs3Nzcj34olYMKwwkSlXhIHP9lsNqMrXlhYiNaZ6Jfz5C1Zu93W8vJytA7O2/Z6vZgla7fbMfKWlAmIEFasvGNzKqTc/SMco9FIy8vLmUCTc0vT+gsyeYVCIZPxc2sIzsYYFItF1Wq1aNkXFhaikjgHCxeMoi8uLmZKBrkmLAd0IdYcRUYZ8EbzjD0fdEGWk1XCcklTLEcw1m63tbOzE7lArALBVrvdjvgQCwon6OVzfMchAbQX3yX1KmXL9bhXhKvb7UYul2RFt9vNBIQOD0ajkQ4ePBgFC+UkcIQScowsKSYiiP6BLh7koCBgZ3A7nuXSpUsxOQLjwdzBCDgrgGLBaefLBjnG14vCnna7HenGhYWFqMzzjD1tYX0kSaLl5eWIiXBBno5Fi5Mk0dmzZyUpLiyTUq1WI9WCsDDxUmrBPfUINiSaJsBD6FAAXD+pVCJ1rMloNIold41GI8ITMkQ+EBICPKJ2T69yv/lrMAcU4XDfzj978gRaDdxPgQ7YHKiFG+d6JGmw5giolzRubGxE+AEDg5Du27dPk8lEm5ubc8vBnhdYeD8wFdwewrGxsREjfvLt/X5fhw4ditaMgArhRJDQflywpDjpWFMWDEvkNQpQTAg/P7E+4Fssn6QITRBeF0RcpmfBOP/6+nqGtfC8PEU7wArS1qurq5nCk1arlamXQDkRSCASQsnfms1mxK+e0aLgHA/ntJykjAVlHiuVipaWllQsFnXu3LkoyPOOPS2wXhrnJD4Fzbhm0p6SIl4F30Hyg+OwRAgqwom12d7ejq7UXTkWiYCtVqtFBgJhRDglRVyNpSNyJ2CSFGkdIAwLj3JiFc+ePRuhCApM2SRZJU8HO8fJXKAQ5XI5Unb8zak2lI65hBUA0+NVXNhJ0zII9qjNJWUM9t3Y2IgCTtJj3rGnBVaaLgBCiSWlUoqUH1aWBcR65jNDCFwIIQYmWBtJ0cUBIzzpgEAxwVwDweHaXNcXlAWBLvJ7QihRhP3792cyboVCIUIgcv1elE6NRT59ClxCGJ1eowbVhRA2w603FJ9DL8eyrVYrzp1zqUAmvJJXlJGBpPgeBmbesacF1gtBPJCq1WoqlUo6fPiwms1mDDQgqiVFQSD9ejVBYiKxhPwNq4slxVJjnTk/7twJfYSJY65WyYWldMFlCxALmM+xE11Tc8pOi1KppFarFRUKlgLqbTgcanNzU2fPno21BSiNB14MXDeC63XEJAMc2xJoLi4uZjA094sge7C4sLAQvQ7B77xjTwssAQUL6/WlwAE0eDQaqdPpxIgZKgqLCH8q6aoFMFJK3SAoXg8K/YXwEVQ5Cc45EUysutceEARhXQmMpFQoC4XpVhYECsvpadlSqRQVxivCUFwicq8lYB6dQWE+YCqANTwrkIfgE3yMyx+Px1pcXIzW2eEJ/DlsDM8PrQdUecVSsyGEZ0MIj4YQHgoh/N3ss9UQwn0hhCdnP1dmn4cQwr8N044vj4QQ3nm98yNk4FLfiIclgmv1/DoRPJgMa8uESsq4KgSGrBoTzT1guZhwhwmQ9gSGDkkQTrhNCr1RHLJIg8Eg7nniOisrKxGaLC4uxjpZ8vJg5H6/H8sugRxAlW63G1PYKKZXgyHgKDS8K9dC0VAwgi0sMinf0Wikzc3NmJlcWlqKWTFoPa4LGwFsSZIkQyFeb/woLOwHkiQ5lSTJ7bP/f0HSXyZJclzSX87+L0n/UNLx2b/PSfrduW7QirK97tOJdz5bWFhQs9nM8LZg4Gq1qsXFxUjB4OalaeRO2hJL4FVVCCDWGg4RAeQ+EHIppcM6nY4WFhYyQox18uiYHDxwAozJHPB3np3PYSDwRARJKDAQh10VHoABO6Dier1epPwQKKAYeN/LKiuVio4cORK9wM7OTkywUN+RV9Lz589nvGUIYVe01o8jcfAJSe+f/f77kv4fSb8x+/wPkqlZ+1YIYTmEcEOSJGeudbJKpRKFlfQhGouVGI1G2r9/f8aaMpgwz/SQIMASOyfrWA03zHWwsAQVUoqV3bVBn/HZ1tZWpqYWKgqMy+dE1LVaLZLxWGbuk0Jzamdx5ygbQoV3Yn68+AamoFAoxH1XwAGsHti70+nEdC/3TlGOCy9rAIZ2Ks+3dAPjsO4Uos87Xq6FTST9eQjhv4VpxxZJOmRCeFbSodnvV+v68oZrnZxJdxKcjJZnUChMYds1VfJ+DtxmvkqJY73mEwvgBDo0kFNrWE2OIwBBEAlcCHJQCjA2grSwsBCFVEozQvxO3ezCwsIVNa0IEgLE/XKder0eA1MphT88Nzi8WCzG9OzCwkKcO+edJcXg0K00a4BnYvA8Xu/qtREhhMipzzteroX975IkWQshHJR0XwjhMf9jkiRJCGFX3eaCtSrCvSNIVEF57apPkOe+facogRG0CtbGM1xAAfLoLBR7oNhd69Eu9BgL4xYTzOeBkycDBoNB3DqN4CH8ZNWgq0hEeJIDLnU4HMbEgaRMTwLOy/zhLfLZO08YgFNnaxFxtaR4zzwDTEO32439GlzRpGkZ4f79+6PwE/Dy90ajEbOS84yXZWGTJFmb/Twv6Y80bfZ2LoRww+yBb5B0fnb4XF1fkiT5vSRJbk+S5HZwE4uNVRuNRtra2opCidvsdrtqtVoxSeBpW+834BExVsHdMpgL4ScS9h0CBDBOQ3kSAeiB0nBuLAv3Bp6GlsKaS4o9DSRlMLTTU1T2O85FIVFm3K+norHwuOh6vZ4JHBEwyhVp7MEc8rzr6+txb5lDBYwLMYSUtkDyks7hcKh9+/bNLXMvWWBDCM0QwgK/S/qwpO9q2snls7PDPivpj2e/3y3pMzO24L2SNq+HX3HbdDfxwg4mXEoroFqtlk6fPp3BrAhDCGlHEimlXMCgBC70CsBSEMl3u90YtOV3w6JEXoWExQOHEriMx2NtbGxkSHUv3+M7WEKSF163isCTOYP+Y4AZ84XeSZLo4sWLKhQKcTeuew0+57qSMttpmDMCUuoBQghaWlqK5ZJuTcH6Hih6PQNWfN7xciDBIUl/NLMGJUn/OUmSr4UQ/lbSXSGEX5P0nKR/PDv+Hkm/KOkpSR1J/+R6FwghXDGBWIn8rlgsB0EZFg43JilTvOyYlc+WlpbinnrHyFLapkdSLMmTFPdUhVkBiQsYCuYRPzl+ZwqgoqB83PpC28HF1uv1mPokQOPZwOSebkZxCNparVY0BDAIcK6VSiXGASgsggcDsb29HS0qGb7FxUW12+2oqKS4USLmm/vAsg4GAy0tLWXYleuNlyywSZI8Lem2q3x+SdLPX+XzRNKv7/IaGWvmxDyLwqKzAF7z6dVSYDmv5YRPRet90aV0M6K7ac+E4XI5H/lytx5S2qYHV+mlf1K69QYl2t7ejg3jEFgKUKg1QMl4Hi8tRGgqlYpOnz6tw4cPRzhBBO/73FAaeFwpTdoAeWBNyFJhSKh7hc4CmnH/Ozs7mXmEJlxcXIz3vBuB3dOZLiadB8IiBitm8bY7XvaGtvteevApP6VUiBjuWiHVsUCevoUPJVWJ8KAY1B3ACECqeyQPOwFVxnXowkhmaTAYxKYZnJ/nKZfLEVs71ufvhw4divACl89cwinjnYBWKB61FQRXXH9paSn+H+/BRkiEdjQaxXZHrOPq6mrceo9HAm/PO/a0wEqKaUjHhlhOMCmLitWQFLUbIZLS4hZAv5TuoUfQJcXgAcvtmSKCLSJ0KbVGfO4KJCmW4uW340hpsxB+l7IY1Kk3nhvvwY4H0sbODkjK3AOfe80uuLRcLkc3TzkgBSpskyHxALvAXFQqlUhNOXYneYPrp0gHSs4TLq+Zai0CAk95ekEFwRGUCq6XycfKeYsjLA2Ch6UhiGMRmVysk/ONWG2E1LNPTD7lcwyyZuBqz1oR7GFtvFQyryxO6nMfWGzfCNjpdCKTAhXm1WKcD4HxOlyKayD6UUiHCxyHoGLpmTvWgmuRHMBAAGPIsM079rTAosHurprNZmZLBZymE+a+adAn3beV+A5XhAdhA3Mh2I55pbS+AAVg7xYF5HyOoGMteR6wtJc1cm0WH4sPic99sRHTOwfmFXt7ezueCwtKTy9JUTgZvgvZrR3HkLwAstBIAyXwWEFKGRjgGvUC1BojqJJi4f28Y08LLBNAapBMT16woF0QKq+e8qwNLp7vksoFWvA7gVtewLknGAQCMEh0MmpgShYY4t+trCcRPADDkxAMoYyDwSCzCRJLTN7fOWYUBryOclAiyXw43EF5uF/3QEAmSRlsTd0Cf/MECFuRsMT1el379++Pz8kaQsvNO/b8JkQsK7QK2S8mGH6R4xE+hI0gglJDPuN4aYq3yEqRTmXhnPvEFQMdCDg4jysPNBL1nlhHZzUkZfCrZ9s8vep1C+6e2S60uroahdy9BoLAZyihW1Gu4fuugB5E9QS7kiLsYA2YG9aB74K1Ha+TCXS8y9zNO/a0hcWCUepGJM5k8sBQSuBALBAunVw6eC7P61KLAAxgQTmP71Tg7+AwMlSehcI902gDS8p185YOr+DW26kerC6/gz0RFBQM9sMTCc5uSKnVp5drt9uNzw61BRxhrnyPF8JfKBQy0AMrjUKCv5kfD1J9B/Bu8Ku0xwU2T/Dj8rBsuCvaqnseHOGg26GUMg78HXbBaRUWiesz4bwdBfznu0n7/X7cRo4rdQEFS0rZFqIERwiBlHK6WHPgAK5WUqTTUDrwuAslnKsHjHgMsks8lycZgDacB4vv6VXmCZoOZcNTeWEMRUfUPDh8o46Y+5tn7GmBlVK3TTSJm9nZ2YkuDKjAAmNdfIu0T5QXc+DScFduLbEKWDwsDZaIvWYEDu7iEHb/P0LoWTPcP9YS4YELpejGawSAC3mOmHujqyHYH8FzzOzCz/kcLjDX8MgYCudjUTzOzT2QUMG7efYOxUBgmfN5x54WWHc/vhUGIfA3ovgOBMeanrqVUsuQx5DQLk6iI3DuIhGSQqEQu8f4Jj5ca36fPgkQrLSU1tIiSPDGPCuJBzzI1SJ4hAxhQREoqCYB4GlmgkPiA85XqVRipx22IfGM3vmbeeP+sdheN+vct0MUlH1jYyN6q91sRNzTAkvuGsuRx5f0lmIi84uAZfROhAgx2I/hOE7KvnURAaJ42q0+1gEX6IUr7o6xLPCwuEs6MnIOzktGippWFzzHp+B7lJp28CQquIckSWJlPwIUQojHU43mzAOllSiDxw54Olz6cDiMiuUMC7UJnvAg2cE5XzO0Fq4aEj9fBI1QgMOwkk5y09vKLTWaDTXDIng5oZTW404mkyhYzgGzQ4DFwbV6wsAtOwkPhyAUtoDxsJiumNQtuLByHn5SZolSeKUamwDB4bhmqtBo5UTRinshIADbjAiYQgiZXQrMLcEXbA0eCrxLQgPKzQt05hl7WmAlZdyipx8lRbzklhE+EszplnQymUTS20lxaCgmHOyKRZhMJpE6klJCnu+CQxF4XCTHcc+8c4BncqjjfQ2cNXDl4zmdpGeDJvfL80spL0pXRKAIpYEoB5iTzZ1erUaCAAvqBUh4Fzo8oghAJ1K2QBYsO2wCa+Nw5Xpjz/OwVAlJyuAtKa1mlxQrhphsrC0wwTNaaD4YmfoCtx4kKZwD9eg3L4wINpjN08lS2qIIDEvmDeYCgQDa+FZrOqs4J4zwbW5uKoSg/fv3x4wVASHP4lt1UBJKFFFgp6C4rqRI06EkzB3sSr45Mt/FOOBZoAhhR0iZewA4z9jTAiulu0exBm6R6BXFBEhpdswLTSjEwBojZFiwPBdI0OERNostZTGgn8fTqr7l2sl5SbH4gwJqKDncuEMTx5AudCjP4uJiDNhQEKg25srnzSk7Uq5siER58DAwE+zWAHqMRqMY/XMtrDNvlEmSabH41772tYht3/Wud+nkyZNxWxFNOnYjsHsaElAgkSRJzKGzEBS8OK9ItM7CQWUxiQirYzi2g0tpEXTetbrgshgcgytkIcHCvhMUCyYpCrTTSvz09CjBoef4sX48nzMHBJakU5k38DVumXOyJYYtNlRUgTN9wyUZLwp6EGLuk3nHCxQKBa2vr+vLX/6yLl68qJtuukk/9VM/pW9/+9taW1vLtCzyTNg8Y09bWKJgLI6nYam79PQqAua8JfwmVtRxsFMuQATXdr4HdGCBgBxEysAJr20YDAaxPtS3lXM9ngPF8iZ0/rxuNbkGSlmpVGLaN19NhUAh0FBQwB/+T4AkTRXr4sWL0dq74nNPznOPx2NtbW3F3basQwhB3/3ud3Xw4EG9//3v19LSkqrVqo4cOaIHHnhAR44ciTWx3kNinnFdCxtCuDOEcD6E8F37bNfdXUIIn50d/2QI4bNXu9bVBt34sAIwAp7VktKiFMdKkiIkkFIrgwUi+HJ35wS+tz5CUOx5MmwFmJJzsMgELuA9KS256/f7unz5stbW1vTUU0/p0Ucf1de//vXYTUXK7oHCCmOVoNVCCHHzJVa2Vqvp7//+7/XDH0531nuQQ5aP++P8jn1LpZIuXLiQqQ32PXGSYq9XLCRz/ud//uf6m7/5G91+++2ZeuXV1dXYbINj2bIz75jHwv5HSf+HpD+wz+ju8jshhC/M/v8bynZ3eY+m3V3eE0JYlfTPJd2uaS+D/xZCuDtJkvVrXRhynm0YkjLukAzX1tZWBod5FZKnOilPxFLu7OxEDMh5yRD5C9NYQDhWMj5MOrCE7SccQwoX1wdNJklra2u6//7748tGwJjveMc7tG/fvkgXATFQNu9dRRDm6Wae9+LFizp1O5S3AAAgAElEQVR//rxOnDiR6UHLz3ytAXQfilEqlfStb31LS0tLeuc73xmVml20kmLKFquLspw+fVrFYlE33HBD7CzuhoB75dmcBrzeuK7AJknyjRDCzbmPd9XdZXbsfUmSXJakEMJ9kn5B0pevc+3oXh27YSFYKH8JLwEBLs+tIsQ/k8ZLOzgv2SnXeKw1izW7/1ha5+V5CAYL5ClY7pXzU6iDFep2uzp48GCm+gvX7/gZy80xwBCwOee+7777dNttt8U34DgDgCIQzDqU8HfqsimR647H47jtBVgEvoX1mEwmevOb36xjx45llKvf7+uHP/xh3Asmpanx3YyXimF3291l111fGCysL5bTRt5TQEotMGlQaByEGWFjYSHICawInohiSSW64I5GIz388MN64oknVKvVohXibeN+f17vgGATLB05ckRHjhyJe/N5PuAI74ZFwHyPmXQlWwE0+epXv6rDhw/r5ptvjkr/ne98R2984xu1f//+eP2rpa2d7ms2m3ryyScjk1Espi+Jdk/HtTnXzTffrKefflpSWsx94cIF3X///VpcXNTXv/51nThxIr5VZjfbvF82SzCzprvq7nKtEUL4XAjh70IIf0d2CSvIguDSCYi8pZCULhwL61qMMGERyeJAE7FoXmTihTM7Ozv6zne+o52dHZ08eVJra2va2dnRD37wg2iBWWCCJLAlfwsh6I1vfGMMynDBuFqsMrzqbF4ypYTMicOSWq2mhx9+WL1eTz/3cz+Xqc3d2dmJL1mGpnP+l7jAM2n+SlLmkTnmd2cvfK/d4cOH4/W//OUv67777ovXfuGFF/TVr341vpnxlUjN7ra7y1xdX6Rs5xfqWK+mybhwsBeLjrBhzagtYGFxnfkNhJ4N8wDOcdZ4PI5BzM/+7M/qDW94g2677Tb1ej099dRTkXsl2wN8gcJhizOu+/HHH9f6+rqGw6HOnTunZ599Vg899JDOnz8fBYrNf1g1LCbew5Xzr//6r/Wd73xHn/zkJzOp6meeeUbPPvtsFBin/vBADOBACEGHDx+OGJQAFXzupZOSMrsdms2mDh48qNFopCeeeCLWD7/73e/WZz7zGf3Kr/yK7rjjDt133326fPnyrlKzLxUS0N3ld3Rld5fPhxC+omnQtZkkyZkQwr2S/jfYBE27xPzmPBfi9eae+gR/4dKp80RAWEzfScBGPD8PuMt5ydFoFDv25fEnruv2229XqVTS/v37tbKyosceS1uK8R2n1QiOUD5JEQM//vjjUUDpwPjUU0/p0KFDesc73hGzRZLifREkYbV3dnZ0+vRp/eAHP9CnP/3pDM2FgPHOWOYAi4xllFLakLmTUgEGkjnbgGBzPuIGGvItLy9rY2NDg8FAd9xxh06ePBnjjbe85S169tln9cILL2T2rV1vXFdgQwhf1jRo2h9CeEHTaP93tIvuLkmSXA4h/CtJfzs77l8SgF3n2tq3b19MA1JyhxXzcj7PR2M9pLRo2SkwJ+DJebuV9RpQsBvCQYEIb2ghF3/s2LFMGpeUJjiY47D8LPQTTzyhD3/4wzp69GjE58PhUH/xF3+h5557LjY6xqIhiHwmSevr6/rmN7+pj370o1E4acm+sLCQSU4g7GBY75PF88Lf8sbDwWCgTqcT8TnMApbd55uYAJbj+PHjuuWWWyLjg9KREuaN4fOOeViCT7/In3bV3SVJkjsl3Tn3nc0Gk+F1mJKu2IPk+W9PX0La58sGvQMMZYpuHfNEPD9vuummTLEMwnDgwIH4f6wr18N1A2M8qPvgBz+oW265RVJaryBJJ06c0NmzZzO1D16cw7GPPfaY/uRP/kRvf/vb9c1vfjNG7+wlq1bTV2N6oIXFhP0APqBcFMzzPYcOKCEcK+lz0qyuEAhyu92Oc0Ua+fTp03rzm9+8qwLuPZ3pkhSxIOWFLKBnaIiscfsOHXx/ERbZAwkpFWYPRjw7xjUQFu/rtbGxoX379uktb3lL5CTdAnPvTrvV63WtrKzoox/9qA4ePKhSqRRfYMy9FQqFWLgDdpWUCSYfffRR3X///Tp27JgOHTqkU6dOaWVlJbITUvq+1zvvvDMGmkAbPBPXBYN6MBpC0Ne+9jV97GMfi/UPzAOFNswx9+W03P333x/fybu+vq4DBw5o//79evTRRzWZTHTrrbf+yBMHP7HhJWy4Ht9xycISSECheLEJmEpKrbULNdbU06BY0Dzhzmdu5Z5//nndfPPNMSGxvr4e8/FgO9wfbAR478iRI/E5+Zz7fvDBB3XLLbdEa0fdBErL/fzyL/9yfNcrUT7PMJlMotCtrq7Gska8DDW4HsDBHYcwbX5x4sQJ3XHHHZn3f/HsHONJFOYbD/TBD34wshPnzp3ThQsXtLW1pZMnT+ptb3tbJr0+z9jTAoub9qp+3Bnuhr+Bv3yfFa7fiXOG0zpYRkkxhcrfsBq4NudxR6ORbr75Zt14442xKPnMmTPa2NjQuXPnJE0J89tvv10nTpyIbpyoezQaRQznqeKtrS0Nh0O97W1vi4EgAkX+X5JOnToVi7V5RjCoZ8kIED0psr29HXlePJHjfubiox/9aCa44vutVivT/5ZnAwqQ8AkhaGVlGmuvrKzoLW95SybwpBZi3rGnBdYLVRzg82Y+FoPFQkB9v5EXKhPlFovp6y4dKjDB/POug1IKGVigRx55RGtrayoUCnr44Yejux+NRjpw4IBOnjypWq0WF4wUpmfpvvWtb0lKX/YmSc8//7ze9KY3RazotQ6UBLJr1oMv7tur0bjfo0ePxjll9wH3wLmBQXguPBHziVEolabNi0mHI3AItWffWDtgnNfmuvecd+xpgUVQoFYkxQmU0u4t/I62Axlwr0w4xdoOIbywGsHw/gbch9eqjsdjfeMb39APf/jDOOl33HGHbrjhBtXr9Qztw+IWCoVM6x5Yjg984AOSphZvfX1d7XY7YlEW3YMsd/Pj8fiKnb9eRkkh+GQy0bFjx+K90hITJcedAytQTEoG+V1ShACeYgWmsD+MkkMEl3OT7HFDgEGZd+xpgZXSvfH89PpNz7x48UWSJLpw4YKWlpYyHCNBkOfjvfWPZ244H64NpaFQ+eabb9att94aszr0mcIq+XsIFhYWIs3lJDnFMdB1q6ur8TmlVLB8VwJ1B/nqMe4dgaCyDauNsPt5gFbgSHfrKDEeCajBvDmLAjsCdAghxPnAqADl8r1ydzv2vMCGMN3sBsENH5gk6T4oz2IBA44cORKFhKgXjAvdg1uiEJuFBLsyqbg2hKnRaOj48eMZV4f19uOcMyYg8sIYz1whGI6ZuR+nolBar1MALuFu8zWsXpROzwUSA1Sr8byO26+29807RvId0rru7Xgep//8jTEIN1Z23rGndxzwQLym3Zuo8Xe4VAI0sBnCNhwOr3g5hRPfkjK7BqS09oAFA24QwCF08J0IpbMU7g4h07HYHlHDJCCsPA/MgCc8OB87I7CSCAjz4eV8XNNf/oHlg2t12o9r+3UlXVVxfLMj1/E5Y43y52eu6XrzmoEEuDz23bPYLKwXaqD1LogEEWizbzXB1XrtLBaD7+MuHUrQTYYFJTLHilP15btUWSwCQimlf9yyci7nUT14gi5CecCWXtjNvZBeBU7xzzlqcL5baZ7Xd3dwPOcka0UAmWdamG/mP28AYAbYF/aaCboYrt1YDyya57/RZLQYIYNRcOvgHKtbKYQMrIew5lO74EXncAn43Do66e9pTf9cSivMPEXMs/JsKAqLzLOAX6VUub2boJR9ITR43l0/yQNXXhSNmEFSdP0EdDw/12AuwccEcV51xtxzj7QnnWfsaUggpViuUqlkXhDhQH8ymbYx96p5BoLI8IyMZ7iImplw3DSLjDIQ6bugY+mxnlhtvo8i4DphHDxIZHitAYqBZ8A78FNS/N2ZDoIohwQIj0MVroMwE2yRwcKCo4QIaLFYjJtCkySJPXERRHZnEMj6PPneOo5/JV/d+WMdbjnG43Hsv8+kIkT9fj/2+cdFsaBYBqwGtBVa70UzvucJa4HAICj5bJAzGFg9tyK+98ojdr8uz8exCAIWFWHEpZfL5dguk+86A+EKwD0zP1LKxWKpUSY8AhbTK+BYDzyXQw7uxTlwh0fMP8/Mml28eHHXbMGeFlgsJfhPSntguQBQCkg61DfS+bYXhCK/ME5reeEMk4lLxM3xHe6RQEdKd+JS0sgxKAD3wbV5TbwHkr4DmCARwQOiwHlKKaVXrVa1sLAQj+c6jvkRHGdW8ChSCpGYP+7bU9LcG3QVVCNeCaHN02RUafkrmAqFQuaNj9cbexrDMpluab3AGKvgLtaF3HnCnZ0dtVqt6OI9oYBQw8k6tuNaeaoKFwfW5bq8ucWtIddyIZKmgkYNAvypc6V5So0g0a0cQsixCCNBJVbRXb5n/xxLe5KCczMX3kKT4ykuZ10ISPketcp8RoDINcrl6fb2PCNxrbGnBVZKrSytg+BVsUJeOCKlGRWwLBbPu/xJKXXl+4nc9XkdrFsLFIhzYe3IOoGjWRzuj1pSSZk9Yu4lJGWEC6vJPXgdBfPiWSnnXX0nBjDI+U4sdn5HK8LlQpTH2NxHv9/XpUuXIi69ePFiPKZYLOrgwYM6ePBgtNIcx5zTAeY1BQlYGFwmQgqFxd9YYBbPMSXUFgOr5zWxLBwWlO8jcDATwA6spe+RQrCklBHg/hxW+O4DaCUsODsD4DRJBWPZPOoHLngA41yuB40+X/lcPvfIPHHvQJg8x4xCJkmitbU1vfDCCzp79qwWFxc1HA7j6+aZe9ZleXk50xHSOeF5x54WWLJZ7rIg6T2BkN/bTnTsFJcHMrgj3LfjUSmlraTU2gJBnBWAMnPIggBi7TzT5kkO7g0BIEiheIYu2mBAL/BxuJMvNmd+/LndGnO/bP9mbG9vZ5TcC2O8pyvKhmEgcF1eXo4KtG/fvvju2fF4ujWc+yyX05fYOXyad+xpgZWyuApr4TjJo3QpfXExQu1ROvWobB8hO+TFNM4K+BsSEXaCLhbLrayU3dngigYXTE9VKX2HA+dy/IygcpzXAePOKeVzxeSaDoXAyrhxT6c6PZZ/tZN7GOANpD8ZyDe96U1aWlrKsBwHDx7UG9/4xijgnqRA6cDRXkQzz3iprYr+RQhhLYTw0OzfL9rffjNMWxU9HkL4iH3+C7PPngrTbjFzDXCo00DubnHrTCbuxrGbR+mSouA6XeXVWR6JEzW7QDgVg7BgNd3acuxwOMwkARDUQqEQ30aDMvCsDgO8dNI5XSnrDbDE/vykcbG6KByCzrXpucWc836F/LOxKdLTs4uLi6pUKlpaWtIb3vAGNRqNCA+8vZHz4+7NdjPmsbD/UdMuLfnxxSRJTs3+3TO7ibdK+pSkE7Pv/PsQQjGEUJT07zRtZfRWSZ+eHXvd4cUTTGq+64sXW4OvmFBK2tyCEcFjiT2C9QIVFhWr7a6LHade7E33P4QYwXH36grId/MYk8SI02rgducy3UIzV1JqnR0SeAbOaTu+MxwOdeDAgThHdNxGWSme4dpcp1KpqF6vR/KfVvdcj4SOd1EkiOXZPcV+vXFdgU2S5BuSrrvDdTY+IekrSZL0kyR5RtPds++e/XsqSZKnkyQZSPrK7NjrXTvDPzoTwD+AO8d5utLz9H4O50M9geAunEG0LU0XimZ0UGC8f0BKm7y5N/CyQreekmJdq6ct4USdcwVToggIXT7FigXG0joX7F6CZ0Exsfy0JSoUCrENk1N8DruIE/jJc29vb0e8LqVQA08hpa1Fne6ad7wcDPv5MO1QeGdI+w287FZFwTq/8AZo3JpH3UwelhWc5cchbJNJuksA4W02m/HtLkw42o/weg1DuVyOlpbgCWjiL/1gcC3qDbAoXA/8O3vmiLe5f86HYrF1Oy8APFt+jxpBjQeADl+SJPsyDH/VE8ETwRUBltcfS+lrN1Eosoy0GG232xEzk+hgraS0M+VuxksV2N+VdKukU5LOSPrXL/E8V4wk1/nFX6Xjmgiuk9KJwwr4YjI5TD7WjGojShIlxZQtxRueGECYObfXLfjC54tUsIaSMpad/0tXBmoeZEF5cW3uke9xD0AZv0en95zHBQ6B44EbWD3m0rNePJs3IyFwAoox3x4zuJHwN1Gyhr5VZ57xkgQ2SZJzSZKMkySZSPoPmrp86UfQqig/mBisjxPN/s4D/xtW0vGf3Xs8nsVj0iXFz7B6LpwOUZz8p670ueeei4EKMMPz/M42eGoZLOelf1gmsJ/XOEB7IYRE/I45843eONZ7L/AKJv+c55aUEUKgFJwsuxnG4+mmycFgEKERVtmLa3gG9wrMwY890xVCuCFJuxd+UhIMwt2S/nMI4d9IOqJpn9gHJQVJx0MIxzQV1E9J+h/muRbBCFZhYWEhPqRPDBPqQuWa7gEXi+BcKVtuSEJ4i08sCIvJK3wQ/l6vpy996UsqFAp65zvfqVOnTmVIf78uCoiVdUtYq9W0tbUVsei5c+d0/vz5iIPL5bLe9773ZQSR+yd5kN8RwLMWi0WdP39e9957rz72sY9lAkHH8R7QUouLpSWTVy6X9cgjj+jhhx/WCy+8EOeiVCrpve99r2677bbokZhDuhSyRsyBK8g846W2Knp/COGUpl0Ln5X0TyUpSZLvhRDukvR9SSNJv54kyXh2ns9LuldSUdKdSZJ8b54bxAVS0ELUWSgUIiXiLRs9CeDbMdhvhSvkH1rPBLsguGXBSnhUzkLfddddOnz4sN773vdG6+1RNbAjz5WCW1GuwWCgu+++WxcvXtT+/ftjv6/l5WW122099NBDuuOOOzL36WlpiHmekToJerqORiO1222tra3p1ltvjd/3LBnwwoM75p9n++IXv6hicdp685ZbbtHy8rK+//3vazAYxF3Ap06ditCKufDUMc/OdecdL7VV0f95jeN/W9JvX+XzezTtvbWrwYY6L+dzi4MwYc3cSiLI+Z2znrLEQmOZvTUQC4dFc6oIC3z33XerWCzqQx/6kCRFZUKQKpVKLHomupbS0kmuy/Hve9/79Nhjj+n48eO66aabJE2V70tf+pJuueWWzDN7YAZc4DMseLfbjdvMDx06FBkAKa2HlVKhYe4cfnCfhUJB9957ryaTiT71qU/FKqtyuayf+Zmf0dmzZ/WHf/iH+rM/+zO9+c1vlnRlpo9rcG03BvOMPZ/poiijUqlkMBqZI6wT7yOQssUrUpamwgJDQYFHpfRNLAgoHKoXtUjpy+u63a7OnDmjj3/845moHKoNi8r5EHSUzRkNFOjo0aN6//vfr+PHj0d2olQqaXNzM+7SRZk8ZewYmUAKfI2AesDlSRC3/AgR+BzryLlqtZre9ra3aXV1NSokf2u1Wjp58mRm67b3jGWOHY55EDnP2NMCG0KIr8xE6Dxn760oadmINfXvON+KFfWAx60hi0pAAq5jMYl2+/2+/vRP/1Q33nhj5gUhHo2jTDQ/c7jh3Rep/EKor7b/K0kSHTlyJAo8z+bYE6uV55E9+MHicU6n2FAOVwCvdR0Ohzp+/Lief/55Pfjgg/Heu92u1tfX9eCDD+rJJ5+MuzLc9btyAkO479dMeaHTH3nSm8/BVkw+jR8oJ/Qqr3wkzrnyGo6F4bq8WM1rX8fjsc6fP6/3vOc9ktL9V7hOoAzeADdLZIwrxMVzTv7u9Je/fM1xJQP+k+sjaDAnuGQyaigpNFmj0Yjn9SIb3x6PMh07dky/9Eu/pAceeEB33XVX/NvOzo5OnTqlVqsVM3UUt2D1wcXuCXj2eceeFlhJGUtCIOEVSnm3j5B4xsfxq2duCKg8H+8le6PRKHK0WEMWYWtrS5L0wgsv6OLFi+r3+7rxxht15MiR2LPKhf5qBSoog++9wkL2er34psQnn3wyCgIVXbSTJ5mBMiEoXA+r6RY2vzGQ73tGj4EgwxL0+30dPHhQH//4x6Ny+O7jM2fO6JFHHsnsIkD5fM7B7aznvGPPQwLKAN0SuQvzghaoHSyIlPKXLCaWyLd/54MWmAMpTQ+jECjJ5cuXYy3nxsaGHn/8cd1777164IEHrthaLqWwxEl/Mm48J4EjmA+h2tra0pEjR6JVRHmZF2BKsVjU+vp6nCfu2d9Bi8UjuPT9W67Q3C9CimtnPhEyBBqhpPAFAWVdfGNlPoHymupL4CQzuMj7YWFxwHbQV3CSYFIm2M/B9xEC13TP2Hg0T5BA07QTJ05odXVVGxsbevLJJ/XYY4/p3LlzOnr0aLSwvtXGGQEUw626B3xYr+effz4T0QNrCBwRAuoLwKkIME1IvMySngD5ai9PnfJ3T1p4oZE/F7i33+/rwIEDcbcy8Mzdv3PT3W53V2+R2dMC67jOOxBiEXFFWM18H1j+TuqUhcynLL0Qw60TbtADKSzbsWPHdPjwYa2trenQoUM6fPhwbGm5vr6um266KS6KlG0V6u7RU6+Oa6WUalpfX9cHPvCBjALBS/f7fQ2H0z6v5XI5vnsM6+8eBwyPAjInYE4EkICQ++Y5KNXMn0/KboTk+igUWNnrjRF0r0CbZ+xpSMDi8DuC2e/3tbOzE3PTHn1iERBy6kc90YAVw0oMh8PMDlSyRQgx5+YcSTLdAfqud71LTzzxhJ555hldvnxZ99xzj77//e/r+PHjcZHz33eKR0rxIx7EhSqEoMuXL2s8njY/dqXiu5PJJL7AbTQaZV6SzP1iwTY2NqJVk1IGgXlEOcn8SemWGw8qKY3E0qKAnHNra0vVajWT0UMRYBaARq4884w9bWEZ3tS41+tpe3tbW1tb8d0AWCsWH6vgWNbTog4BnPoiZciWDoZXaHkW6+jRozpx4oQeeOABjcdj3Xrrrfrwhz+csSx5ygYax2tXfXerW9pCoaA/+qM/ilbJcS31wZPJJL48o1ic9r11LtVfvHf+/HltbW1FIcSbgIUZzGc+/c08Eiwxb41GIzbsY718N4cLrnPoWOLXDK0lpQUuWJ5CoaBLly5l0om4P8/d8zd3fVhTgg1PCEC3SMrk4XFjDhe4Vq1W0+23366TJ08qSdJeqnS3dh7SKSO3oPniZg/K2u22tra29Ku/+qvxJcQkS4bDtH29R/i0EIJqomdDuVzW448/rlKpFAXc+4YhwFJaIOQJD39Bh5QmBJIkiR0lh8OhDh06pEceeSTjUVgflHhnZyf+33nzecaeFlgmDJfD75VKJTb8RXPzViBPe+FyPeLnd2/BA80EzpXSVGJ+syMQBQvIZ3Qr9GOdzvEBtuPcYGwCnM9//vNXzdzBM3uShHI9lAul9s1+x44di70QnMf22ABc68rO+RCw7e3tGLjh1Wq1mpaXlzN0Xr5SDutP1o8u3vOOPS2wUkqv4M5Ho5FWV1cz20gkRQKc3q9Sipu8rTqsQd6aSNmXqPHTt5A46c+5ECysKHCDgRDgnqW06MUX07Ei/0dxEAqgABi0Xq9nelXhYeCpERgs4Uc+Mt1i5zsNPHj1OghGPrjFI3jDYtYJq877aCVl3vbNHFNbUS6Xo7Wdd+xpgcXK4VbyVU64eTIyBEN8lzchOofqmaR8SZ0XpLBj1ouafXcDln4wGGhra0v79++XlG7/aLfbmaIPb37BvSAwLCYwxDlhoAdC5zQbSkRxUF54XLlw0VhCKduh0YWU++T5uT/fysN5Qggx0EuSRG9/+9t1/PjxK5IVwBfYA5SDBinzjj3NEkiK/KpbG/AgPOOzzz6rdrsdhUyaTirvlPLI1BsaS8rss+d7ZLhYEI+GERaKtuF02TqOwCHgHkh5ShULCqRwAfaMmOf1WWSU1I93RgLhdiyOG/agE24WAXYIxj1SLMNwLyQpBlucs1Savh/Xn4n6YSntJhnCtGCJ9Zh37GkL6xPolgIrMx6P46sp+/1+XAApLfOTUqzpGNaDCs94dTqdWE2PsCHQuEYXxn6/H3EjC+N5e++W7WliFI40aR6qOO3DfXNe4IRDF0+CePmkpOhBvGiG1ynxOcrmXgyFyWNxlMfnrVjMNll22ORexNkTT5TMO/a0heXBXKudTwU7NptNtVqtWMSBVfTCZi/AKBaLGWvMggAhPHIl4PAiDbeG9O33heK+86WMLCIcpqdK3arBJ3Ms/CnX9loHKc18oYSSotVEQX3vVz5JIl1ZG4vFdrjgz+dlmb47w9eOAT72azuOzxcfXWvsaYGVUmHCEvAad7AoWZR8JRSaTCSKq2bRILYRJBdKz6c7tvVaAOdjEQbcm1M+WNw8b5nneV1BnJ6DAuMni8w2Ghc+53QRCi9ocU/lv4NlnTfO1xXklcOtIvdHQoS/IaQoA0qEsPr55h3zdH65MYTwVyGE74cQvhdC+B9nn6+GEO4LITw5+7ky+zyEEP5tmHZ4eSSE8E4712dnxz8ZQvjsPDfoAQDDaR8pnSAPOjyBkG/piNUGH/s5WWiKSZhsLwDx4e+mopGGpBhYgEGl9J24HpE7PvRzE0QSxLHFBqXxdx8grLhlWBIKaaixcPzsmTDnYblXZy0cSvj9+W5h5pvh1l5Ke35R+shw/nueMY+FHUn6n5Mkeauk90r69TDt2vIFSX+ZJMlxSX85+7807e5yfPbvc5puCVcIYVXT/WDv0XSX7T8PaT+DFx1e6Jy3gEww21DyBRocQ8UQeIpAwDch8jkCxT/nWKXUJUvpjl42MOJ6cfVujSD6+b9XcSHAfs8eoGE58QxYWaw+54IrdTZhNvfxjTdAJYQJJULZURQ8Frjcs2Kc1yk1fw7uE6udNzD5efFU9fXGPJ1fziRJ8vez37cl/UDTJhifkPT7s8N+X9I/mv3+CUl/kEzHtyQthxBukPQRSfclSXI5SZJ1Sffp6i2QMgNNdVePNfAMl5TSVo6/WFCCClpmttvtjPATBHEdAhUnz317iRchuzVhH1l+75Z3SpxMJplu4TyLU3jgXt8hwHGj0UjNZi034qYAACAASURBVDPT+p6GI1BMXM+LVMbjaUOO5557TufOndPZs2ejV/GcPgqDRWQexuPpG2BmsiApa1m9nhcaz5/ZBb/T6URjsxsLuyuWIIRws6R3SPq2pENJutX7rKRDs99fVveXEMLnNLXMWlxcjNbPsST4Tcp29pPS7oVeBYQVyVM/WBWiXSl1hVhvSHq3WCyeZ5m4RrfbjbQOyuM7H6Rs8bhvVUF5vDTSWRKuCekOiQ9D0m631Ww2tX///miJERoUq91ua3l5WcvLy5pMJtrc3NTq6moUHubAAzTevAjTwfwRJ3iiIl93zD/fHOoFMdLuGsLNHXSFEFqS/m9J/1OSJFv+t2R65fnJtGuMxDq/kATwulYECbfjGRuE2eknsJ2nJ53UZqJZII9knZnw0jvfjoLlwDrXajW1223t7OxkMmVeiOPt152OyvO31Bhg/RE6zoOnaLVaOnjwoJaXl7W5uamHH35Y6+vrmS6NHlwWi9NGGK1WS4uLi5kCaqyjCyF8tLMTbk0RPI8dUGDPOhIwu9V2TnyeMZfAhhDKmgrrf0qS5L/OPj43c/Wa/Tw/+/xH1v0FVwPJzcJiXWgJmecgqfjPR8kUsmBN3Vrgtsgq8V2wJFaX4vBCoRDdsk88pX5Ym9n8ZCy0Cy73wvFAF/hWL4aR0oCp3W7r9OnT8bjxeKz9+/fr1ltv1fLysp599lmtra3F7/D9Wq2mpaWlaOncfePJKBH0oE7SFYIFA+IMAnNFYOUctKeEPeWeD+iuNeZhCYKmfQh+kCTJv7E/3S2JSP+zkv7YPv/MjC14r6TNGXS4V9KHQwgrs2Drw7PPXnS4WyWoIbInSgUD+mAhiIIRZreYCBV4L4RwBR527OU/80UxHr2DT1EOBJ9jpPR1Qm6ZXDD4jnOUfk2uSy0BaWIs8dGjR7WyspJ5Aw2wg4QBVh78C8ZF+Hw7uZQWkztM8QQBws61gHLu7fLMCRh8NzzsPBj2ZyT9qqRHQwgPzT77XyT9jqS7Qgi/Juk5Sf949rd7JP2ipq02O5L+iSQlSXI5hPCvJP3t7Lh/mSTJNdt4JkkSO0czQd4OnmOkbGM1D4acrnLrioCAJx1Hsm3Dt4IgdPV6PaYUvdGblL4VZjweZ4Iv70UAncT3eBb/ybm8ppQgyL0DAWSSJDp48GCGiz1w4IDW1ta0ubmppaWlTPTufbsuXryYSTIgsJ6wcWVizv3+napztgNOOC+UCLP3lph3zNP55f/VtDfW1cbPX+X4RNKvv8i57pR057w35wsLFHDQDuWFtvpedyftsT7+GnSOpcret+Ew6QgAbs5Tqk458f3l5eVo8WiHnocFWHW+S+slx4OO07e3t3X06NE4J1jTUqmkI0eORGFCgXZ2dtTpdHT69GltbGxEum9paSkKHy3eEfobb7wxzjf3hhsnYAK7sg7elM8ziV5y6RxzoVCIHoE1IGEC8zCXTMx95E9geFrQCzmwop6pwko4GY+FYEIoSZTS+gIPYvjc3T+ukuDDyXh3mZKiclDIjZv0BXQLz+JhXbnOZDJtzc5mQVcSlBH322q1VC6XY/YMjHrLLbdkFMNpQVcihNUNAc/n2NS7JXp9BXSc/87z+a7m8Xgcu76g0H78vGNPCyyT63ln3KTzhrxJEEHDsvrLjnGxBFIurETlHrjxT0oXE943SaYvpOAcfM93DywuLka6yZMeeT5SSmENAaOUkutYOpgS3HqSJJnCGa9lhSbat2+fDh8+rNXV1VgTDDRwHlhK3bSUUoMORzAMrAEsADDLaTnWgmuww4NnoY7iapTf9caeFli3JF7Y7JSIlFpft5RMgvOvQAwmjfNRt8rx/MwXz2Dhq9VqXGhnHpIkyTRgZmCBfOERVu9q7VVlWCPOT9KiWCxGQcDS+a5fnpsSSThdlBMB4u0tXmdMkEoAKinzfgh++q5ent2zkQyUrNvtamNjI3pM78frwec8Y08LLBY2n94jsMCShlmu38sLPdWIVfZF920wTKQT3W4JCZb4jsMC51rd3ea3avszwUVyfX+RMuQ9HLQzHY7RJWXmgE7WYPBCoaCbbropCrAnAkIIMRnA31AEDxDdcoNj8yS/wyaHAw7nSqVpozg8HPdCDfGPJXHwkxreVgftZ1syFtNfHeSZFgSu1Wpl6CwPnpxaylcshZDuSiCqZnIRDCwd5/UCHB8u3K5UKADHYN28tsFdORYXBeZvQAneL8A7HLgm+NczhtwzsAV6T0pb6ktZJsaFkv9DVflLQlAmF9p6va7t7e3Y/glKke6K84w9LbAIoEejUrpLwF1dvjiaxQcCsMhOK7kVhCN0DtSP5XxeR8tieEqT7wIn2MZMihc4gFDyz+tunYHwwhan0TxzhWDwTPV6PQqMu23P0kmKPQuYBzAmltghEffD717U7rUa7oEmk0nmHQhOpwF3vE3qPGNPC6ykGDFjaZzYl1LL5Ys5HA6ji3SS3PlbLCPndDjhrc3ZjoI1IuqX0j1nCLCnLj0r1+/3tbi4GIUAa57PwjFccN26emrYlShfwYXF9/M57MEievaMwM4TBmTUuEeUD/ggKSowCuF41At+fB7ZfsSavKYwLDltLCe8nZPXXpQCb+j9qpzY9jSg79XyLSy4Vykl6FlUt34IpmefJEX8x8J74MP3/QXIzjfzfQ+2qMDyCjEUxbNsLD7/d++Eh0GxMQAeG+Rd/Hg8ju++ldJeBGQZwcyerKlUKmo2m/EzlITzUhiEN/iRv7rzJzncomCtmBgpbV7sW018By3H5nPVnr93ywPdwt+xXFLKCbN4LI7Xk/I9z7ohKAgJi+yBCoJGral3pfaME1YKnOhW2BkIlIjPuTcSDP4mGb9X9zhuEKDrvFbAoQzPgFLz0j2f70KhoE6no83NTQ0Gg/jWm7w3uN7Y0wLLyFsDSTHwcqzoaVYW0+mwvDXBwmIBpRSPwjxwPiqcPPmAhfXhQY0nCbhH7oV/HIcywK/6350LdUiUL95BGJ1HZh4IIPOQhu+6V4Dndb6bHQ8oOQJIJZc/E8/o5Yh8dujQoQzkoB5k3rGnBda5OgTMU5tuIRqNRrS0PqmSMm4JLMZ3CCJ4JSfnd813ntWLXTxVjCDlaxccXzq/yUAZqOHlOo6LPa3LDgAsoRfJuLIBY/IBq7MiHqx5l0YEW1Is5CENzrMPh8NYSIN1Jkh2KMc1vZaDGgLW+DXTbhPLIClT9e7VSSyI78FybtQzXwgg/VKlrNDn8/meYWN44OapT87B9cDVWBgXVnfXCIcrJwOF8ESD85sci8AAU+jMglehNJPv+b36czlVxpzzQmpnMsbjcezogiA7XCgW0y3f7kGYV68n3g0HK+1xC+uDiWRCcH1M8tXwoy+yu6zNzc1M5E3EyyTmYYXjRN506IGLVzVJylgiFAzh8lSzV/F7JO/7vTww5Fk4v1sxKa1lQLioVcg3Pua+HcvDtPC5c9WedvVsFYLL65wIyjAGblCwvlCO7g0cNlxvvGoE1jcMYklxYUy813ZKab2qT7aUZpEoZnFWwbM8CBTWSkq3t/DTmwF7hsetV16guVcvf/SEhtNcXIfveHaKYhev9iIThmC7wCGMbuF8XkIIMbVMYIii4tIdG/s28yS5sr2Tt4mCveGZuKfdttvc0wLr0T1Y0a2WswEewOStjmMkFyh2sjr2QgBw11gFDyDAnF7M4e7W6STndl0ReD6qu7CEXnCe36Dn6WUGNbKOLbFgHA9ORBmYj6t5gfzOXZ7H3wjDdxHIfCYShcMLMhcO01hLZ2LmGXtaYB3n8f88Z+eL53ygswHebMxbxkOeF4vF2IKS93NRTcTwoIQJdljC5Due9aAHK4UAkNhA8fz+gTiezJDS9ktYRzhep6RQXFgP/u4YHrfspD6C5bUHWESn7DjG5z1fhwF3jUDzDPRvIDvGeE1Va8G1erCBpfB8OIuNoLl1cU4TIcDlETA4boVuyfONHnAhvH4t7sFTtfkiEiCGY0iEzIXVWQ5/8ZwrpVtHMChWEWWg0Bohwhs4leTsCopAKSVWO2/Z8WTMGWlrIBtr5DUJUtrTC+gA1Jh3vJzOL/8ihLAWQnho9u8X7Tu/GaadXx4PIXzEPv+F2WdPhRC+cLXrZW5utsAeNDkv6dkerJ33TIVHZRcAE0Ve3+s+UQBaursggBc9cIEr9cAiz5VyD9vb21fQVFJ2q7SnkKGovErLEyN8p9FoREvFObyWgeOYL16x5IVDzJsHdQi8NwRxBQM+8bwc02w2o3cD1rRarSvwuwdxlUolk1m8rkzMccyLdX6RpC8mSXJq9u+e2c28VdPXy5/QtFHGvw8hFEMIRUn/TtPOMG+V9Gk7z1VHHpvhzqnRZFGwTlhNrAcL7VuS40PZ4iIMWCS3dAQZWGU+R6B5p4BbCtwgbrjVasW/e/RNRsn5Zc5BuaQHcAgNVBOfSWndquNfz4Y51YcwEmQ59s8HjEAGIA9Qyu+J+5TSemVvJIJh6Xa78VieF1gz75hnT9cZSWdmv2+HEOj88mLjE5K+kiRJX9IzIYSnNG1NJElPJUnytCSFEL4yO/b7L3YiXBmTePny5fhwCCEC7PuJcIP5lKWUBkEogX/GwuQF6MUCu2KxqM3NTUmKhL4vNkKLoGJpQgiRkHec7ELmXW0cE0uKW8k9cufemRPqTIE93LPTSHC3+TnyZ8DL5bE1ryYlXcz8uGI4rPG6BD5nrn9s9bAh2/lFkj4fpg3f7gxpn6yX3fklhPB3IYS/IyftlhSs5lyeF4oQNTuccMvKebAcLBgCDx4Gh3k5Hd9j0sG6LizO2xL5s5gIL/eGtWXxUEYPCPkuQsN1/dWkCBgC6scQTDol5Vm6/K5VYBACipA64Z9/1xnnJzXsEAvMjDICGTxAdKW93ng5nV9+V9Ktkk5paoH/9dxXvcZIrPMLm/kQOC8S9qILMi6TyUQLCwvq9XqxgMT5USltdpZPHHjNgUMMSTHgAAbkFQBaClzpXmEymcRNiZ4ccHqL64IFvf7UhSyfuWIwH/7OAc7JdhqKpFFYIAT34tCBa3IPV9vzxnrwXSCVrwvC74kMAmMPxNyiX2+85M4vSZKcS5JknCTJRNJ/UOr2f2SdX6TUauQLoikDxP05viSlSPW9c5u4NCmlndhQiBXzWlGsg1NBvgNVyr6wAwEF80qpC2chvVEagY/DF5TSyw89IkcoeW73PtwD3wfPg7UJyPAObvWkbHfG2drHc6HY3ItTXb692/la7ol5lRRfHs0zEwTPM15y55cwa1M0G5+U9N3Z73dL+lQIoRpCOKZp280HNW2gcTyEcCyEUNE0MLv7WtfmIev1utza+m5Yz/7glhwq8P4B12jHf54gQEi9p5Vfw+kpv0evoWUhPdvG4pGh88YV+dI/LD8lfZxDSjlQSVe4Vq7LfTodxf06jcQceEKEtqUImdcswKvyjMyVwx+30J5S5l4RTKww1no3GPbldH75dAjhlKZN4J6V9E9nD/O9EMJdmgZTI0m/niTJWJJCCJ/XtD1RUdKdSZJ871oXDiFESiifRWHxnNT2iiHcZgjZ6iBPeQ4Gg/gqdyzzZDKJpYoEKC6EUFpu8TqdTrT6XJ/74X7hUrFEpIS5F+cueXbKHqGyENZarRbPh2ByfS8h9KxVXHCjnfBKLvx4C+97i7tHgD3yZ05dgDnWg1rvn+sFPXkMfb3xcjq/3HON7/y2pN++yuf3XOt7V73BWWDklA1pPzYoSoqTy4ZENDeffPAMVrlcji+SwxphZRBS52m5Hi4e2sy3iTve8yIYrBsYFqsK7sxjaI/YXYF8LjgeV8yzoUwUozij4kkT7gVhxeL1er2Iy71dkpRyqFcLNL0ii3vjOygShsTn+jX12iMvlvbmC4B4Js0ruBByJppW7l7MUiqVoovCQsEpYgUYCJhXVknZImqgAvUAjlGlNPr2hmhutVy4EZ58xRRdw71NEJhUygpIPq2KFyJI8myYxwhu+bHyrkBeP+BFLMy5pEyvA/C6Z+ac4WDP2LxjTwssAZKXq3nakAUnIHLyWkr37TslJKVBQj7ocOuX32GKoJCB4lpYYo7DgnFersHxHmB5oMQAsji+4xrUmOIBsKa+bUZKC4VgFBDKPD3FIFWLoOcLjXh+j/adyQCa+K4NTxfzzDR7RpidNpx37GmB5cEolvByNWlK1tM2B7oJS4v2wtfiqqU0g4Yr4nMySHmrhEt3HOn859XoL1ywB3yO3Tz1C1Z1q5nfTYBAYuVdQTyz5VumcbvOJHhyg2ATK+1Wt1gsZjJQ/K1cLscULyyMb7f3tG9+ZwedHVFiFNEbKl9v7GmBldI+pUzycDhUq9XSYDDI7PUH2znRz/HuroAWWAuvF0BQ3CpzLgIib8bG/7kPZytw6Y4PfZGwdi6MTi1JqZUFe3vzNASV88GzOtGPKwZC0QCae5MUsSrHbW5uRgH2LJTXV6C8zCvzhbXP88fMNcXvcMNsS9pNanbPCyzWCC0mIyVl3wflSYJiMW1cQYTtFotBHh3I4e5VytIvHrhwX06jIZxYGX83Qr5CC+H1TYluAfkMhYDpAI7w7Jybl3g4cc85PFEipUXrbu151larpVarlQmwgAJOzzmESZIkXtu9FgPvV61Wtbi4GOEHhsHprnnGnhZYNB2XxxgOhxEKECQxWWg6lUxYE4Ii51KddsLiOCFOS52rvTURQWEgKHC2rVZLUroL1+EDlt1fQ+TP69fxFpVSysm6hfYtNQ5bvGMhxyK8lAIifMwp0ADB4r6cV3VLD6XFHHq7IiAKgukpbUmZXrHzjj0tsCGEGEU6b0hna3Atx3pCACGVsnv7pazwuPWYTCba2NiIqV4mGozp1hnBLJenr1D3yBnWwV0niufBjwdv/rnjyPy+LQQLxQLSeDVZkiTa2tqKlJQrLddBkXwXhaSMB+O67NfyQhuCNw/GvAZhNBrFhnNO+XHPzpS8ZrZ5S4ovHmbyPRJ1wtk1GLeZz8ZAwyB4HhzlLQZC7xMMc0AxNMJYq9UywucMAoN78u0pLDLW1sl73Dnt64EfVEeRlkb4PBlQKExrX7mm3xvQw5MG+QIUhNYzfl6og2Kx183xt7MbXqydnxeYC086zDP2vMAiPL4jAEvlLTO9NpXMkycVvCjDM1iSMvjRkw0uzCiME/NQPM4ouOt2lgPinL/nWxdhpRw/MghYuKZXeHnwWKlU4iZC3w9Gdg5X7dtn+Ltnpmi/j6DzDzztSue1AlIqlJ1OR/1+P3LjUopnpWyZ52sGEqCJWDMwqrtNd7ssnvdNhZ/1mk6ncbjO1bI1+bpYrIyULpbzoQRv3Ktn16Srv4lFSt/D6pQV1pNEA9G8V1cBPYAXhUIhFvswD84O+BsasaKTybSSC16a7/Hcfk3fKpP3TC6ApLo9ne5b6TkHz7EbLnbPC6xTRFJ2r7uU3f7d7/djkbDzlB4NS+mOz/zfcbOe/nQ3CO7yRADYzj/ztC73jkVECIAZLKwXq0iKlVpSFku6cPrrPb0E0QNAni9P1kMxcX33HF4PkA+K8sXuXnnGeiHMYO1SqRS3z6DIPJdb53nGnhZY11Lf/+9ujeonrK6UfTW6k+NS9i3TCAnRM24zz3ciDFhuSRl369VODgMQAigpT92ybQaBQBC92sob4TEQXoTIc/Ru/YrFYiwHRIgcsyPEeBYprVJD2FzhHLoAsTxh4ZbY14SyS+grLDVpdmKUeceeFlgp7ZPvpX7ep1RSJM29g7RTTp7pctfuiQHvCg2EcFoGV4oA4uqwIvzLp0CxVmSy2u12rMx3q+b37cLnyug7YLmuk/P+vJPJJFMDyzUQQNy+c7ZE7Y7JnXbz+ZHS7pKuDCgI2B6DA+TwjCS1G68ZC8tot9sR6Oc5S6wWL0wjz+0QwIE+1tRfHCcp874sKXX1eevGomANGdyPF7E0Go0rtnR7YbdbSVgCcCf3gGB6TS734RYYS+Vdajwj58/ebDZjAIRAIXj57o3O9/pcYqXduvI9sosEcv6iZsflPAuecZ6x5wWW6B93hZaWSiWtrKxE6yWluwOck3TMOZmknUbytZ7gKxaQVykhfARwCAEWFKuE23S857WeTrV5dA9FhiB0Op14/574IFGCoCHkCAx1sxQLkV2TUtjCvcIpY90RSM6PNXZold9644rt1WXgdebRIQH/PDi92qtXrzX2vMD6w/D2arDsxsZGJmeNELE4VAoVi8Uo9Pmuhbhxx2kOEVhIz88DBbAMKESeG/bPsZr+dmsExv/O+wmAMU5fSdnOh2BUtk4jjDwPe6cQfgQKmtDdNQLuLIIHi25Z+en4lv4CCDv3hNfxdfAYYrcvl9vzAusulAfb2NiIXCuW0AuKsa7Uy47H01dg5iv7oVtw805Debki7h8hx0K5ZUQ4nLrK72zl/Ag+PCfJDoSA7ziM4B/1BHlrjlVFgRFArK9TUJ6w8K09CLRn63j+vMtHQSqVihYWFiRJzWYzWvlisah2ux1pLtYKz+JwYTdjnj1dtRDCgyGEh8O088v/Ovv8WAjh22HaxeW/hOk+LYXpXq7/Mvv822G6NZxzXbUjzIve3IxX9CAk34gBC+bBgmdloHA8h4/18Ioh/25e48GhRLZ5NzgcDmMhjVttKYu5/c2ATtnhqrFmCDHCR7BEpovBMZKi8Pk5dnZ24vG4dCATzILTcgyP2nk+nzcUnHnxtDUCibsHJ5O84Dyj0Sh2kdzNmMfC9iX9gyRJbtN0S/cvhOlr5f93TTu//JSkdUm/Njv+1yStzz7/4uw4hRfpCHOtCzMJTPrCwkIsXqbcDjBP7SvHexWVZ5ikbEpWShcRTIk1dYHxdKlbUXdvCLykjNBhuRDMjY2N6Ap9oT1xQYEKlogAxwMt6kydY3WM7KlZcDn373vFmGuv53UMzMjfhzMcKArba7guGJlnnMlCZEp2Q2lJcwhsMh3sYyjP/iWS/oGk/2v2+e9L+kez3z8x+79mf//5MJ2V2BEmSZJnNH09PVvDX+za0Y1KKZ5EgMGkNIwAn3mbR9+k6IUu0nTi+J6UbY3JNYfDoXZ2djKT7zia3D7CQqAFroOCQnn43Cv88wkSPApleFgoBCZfnwu8kHQF5uXZHbuT1mZOvGTRv+NzwtxKU9aGnQOebCC5gsFA+T1ziNJ7Qc2PnCUI095YD0k6L+k+Sf+fpI0kSSDovItL7PAy+/umpH16iZ1fJGVaU0ppX3w0Gyvk1fVYKHAhC+OFLAiaZ5UajUYMZrzulnO6RcJSO6fJeVwpsFRez8oxPANuFAF1QXM8y/cajUYGuuCCnSJz5WTesLD+5p18DS3zxdwwB1wbCpH7B4KhWNQ+AKFQIn9FqVvpH3UzOCXThhmnNG1+8W5Jb5n7CrscSa7zC8KItfUomomGh/Uo2QUR9wbp75M3Go108eLFTIoUK8S53GrkNzr6O249C4QAeIYNheNeiKqxsPzNj0cx3e26ssD3cj6UEuvrXslpKsetWECieyw0HszT4pIyXkVKK9xQ2FqtdkWTPE9GOBTL4+frjV2xBEmSbEj6K0nvk7QcQsCWexeX2OFl9vclSZf0Ejq/QF7jkj0zQlRPMMOik/p0bc7vAGBBwawUW+OyvJ5VSvPvWFMW37focC2ny3gGLCRpTBZ2aWkp85wOXXClPGO73c5E7cPhML72Euzre968OIg5cBrO2RTH5J6YcAqOc3J+zu3YGw8Cd45xyKeEJV01wTPPmIclOBBCWJ79Xpf0IUk/0FRw//vZYZ+V9Mez3++e/V+zv9+fTJ/4xTrCvOhgouiUR4rS+VIoEhaXQAw3g4vlfVBMEELleXiiWITKAxQpWysgpalgFg0ryEBQnQVgYenyzf1cjfngXGz843mwWgsLC9G1o8wIKM8mpZ3CmVOewSvGECbqHkho+Pmcu3VB9MwbVB7C7L0jKDekfpjn8S031xvzWNgbJP1VCOERTdsN3ZckyVcl/Yakfxam7TT3adrOSLOf+2af/zNJX5hNyPck0RHma7KOMNca0DPlcjmTPkVwvSKf+gGfSE9/5mtq+Vmv11UulzMZGOgmaaowWHYPPBBsFsn5VThJ4EOxWIwLNh6PIy5ngAu5JhQVMAe8iVLO5jTDSoANUQyYFNo8eWGMpIjj+ZtH7eBg2AysJ9QaQuxQxSk96iDa7XYUdq61s7OTMT6O66835un88oimLTbznz+tq0T5SZL0JP3yi5zrqh1hrjXAnZubmxk3z8AqeRAF5+oBVL7MEKFEsD3S7Xa70dV6uyACMarpOR4sx8Ljgn2gZAiFB0BYvUJh2hgN6k5KPYQ0rXdA0DmX87OeIpYU6yVQNDhV5ofsFN5nZ2fnCuFmrnkerC/nqVarMSEwHE67cFOX0Ov1YlWa42CgU7fb3TUXu+czXdLUfbdarSvoJtwT/xAc5zzzpYeTySRaR6JbDwjgEfmcfUkIFN/DlVWr1diRhUjdLQbHcn+cC4sEngUn+3taPYOXT2ZgsYASTkn5HKEEUvomG46D53V2gvnGcjJH4FS6aEvpRkwsOtANgfYt377jASVljX7UkOAnPtxlOdmO1XB6y2kdXDVWgYlqtVqZl3cgaM6FOrmOBeYnwgu3KqXEO1gSKIIVktJqMcfRUvbdY6urq9H1E417oY27UNw11hqB4f69AgyFQaCAMCgz3oY58MQK9+yY1hvseX0C7IIHtXyONUdIUU52I8wz9rTA4pLQaCYZwWERcXlEwkywVys1m81MZT6UEZ/zN/7O97AWOzs7mTw9wu6KMBgMIj5DsZyXZYH9rS1Op3E+AivwK8/tmSkpzejxXY/YqZFgHvEYbH93FoSUsd+jsxwIMXODR+CFG3g+fwu5ezzOC/4Gb7tCzTv29LtmndReX1+PLrLRaKjVamW2KvsWYs/KuDAx+B5caz47hOXGenFNFIRo3IvEoa1w++BfXCr34mWGCK3XIDiVhcD5vYMBb4xdMAAAIABJREFUGcXitFi60Whk3L1H71hyrCSfOc1FXQHYlnt07hTcidBub29ninswJvnMlQedWHXgyo+c1vpJj8lkoueff15PP/20zpw5o2eeeSYS+B7Fem7ec9dYGoIErAOUGALjaVsEhOAJVzocDqNbk1Jay/955OsCz08n0r3JBLQVQuKvQOK8LmSepVtcXNRoNO0lRg0E2SzOgZXzdqKcG+F2nOw5fqwxARxW3ectnxTAwqJ83LMHvxiGH1vi4JUeJAUajYaOHz/+/7d3bjGWpVUd/391O3Xq3OvSdjfTYWYCPIAJSlBJND5g4gWN+KAJiUGivMkDhkSF+GCi8oAPoiZqooJiQryAJk6MaFAkxgdHxBuIIkP3wAzMdFd1nXtVnaqa2j7s81v7vw/T06dneqZPT+pLOl116px99v6+9a3Lf/3X+vTwww+r0+nE5MxqOBYU9r0D8I4VSgXTiYVBkNCcmPparRaRM/4kfiIC79REJ7vwfQiCBy9e+t3tduNvmE0ExM0q6AXaCs2F1qxWqxqPx6XvYYNyDSwJfiNch3a7HRlEntWRFE9OUEq+tLQULDWp6IMGnotSwGow97g8bICXjcBKubm6dOmSms2marVaqT8Tk+hYIJE2QZRUAPj4ZwQEUBVZ+JOTkyjH8VSms5RYPLQGvp1HvZKitHo2JbqxsRE+LNhuu92OexuPx5Hg4NmkglEGfITwecTuODWbBmGdPRoKWI5gDf/TLZdrQQ9wfQ59Q0pFzy+nUrKpQHXW19dLp+t4Mua28nCH8vOSD4ecrl27Fv6rVKQfPWBiwtBS+GPuL7m/KBWtjIjMoRf6QWhkp0AjeC+/u/+GCZ+FddCqPBMYJL9XKhW1Wq2Sz8l9Aq954INPzYZAwLlnhwE9E8Z7eR8BkfvaPIObeuYVS4YV8O92BYKG5Vl87nGJWMd5x0IHXWihg4MDfeUrX9GVK1dCAADLnSrnC0fkD1IwC3kBS2VZpvF4HCC6+6FoTYfFHPD3qH8W60UT47Z4uhJB4nA5hA7z6S4F18S1OTg4CJfHS1xIlCD8aGGyap744PnZUGht5pxndH/bUQ0/WM6tB3PuzDqujbsCLREB9qLJecZCa1gmZ3d3NzQr5RguPIPBIBICh4eHwbRngaUChB+Px6UqBnxBOqPMnqKSZUWpDUcpcT1vy07a0t0TzK9UoAJO+XN/GIFxzeb+IMMzXGgvSarX6yFc3rYeLUd0DwURVwUBdaQEiyAVnGTXkFgTqm95H/c3i/2iNDqdTuCvbuHuZCy0hk0pqd/vq9/v66GHHgqyNYLIhOHPkgaE3UTaEA1zfHysJ598MkwsGkbKqxlqtVqkE2u1WslHJgr3fl6uXRwec9a9A/EIWLfbVbPZjGDH2xpJxWagEBGhAqVAI/M3qWDzewKBjuJOVST7Bz+DjBSby9lfaD4vhx+NRqrX6zo9PQ1/m/60q6urpY4ybBDcjdnScoLHOxHchRdYsFIEiAfFFyM1CnlEKhZNUqRNCQBWV1d148aNEKDJZKLd3V1J0tbWls7OzrSzs6MHH3wwNANmeDKZxAKhSVhYFtrBeakAzXmfZ4mAl/AHcYHwIb3Yj8/z3Ggxj8DZgHyOHlcQfEA/sCRZlkVwSoLm9PQ0XA6ujQsG/OZpataJWIJnczIMzeVmiS5sTN/4txsLLbBZlqnT6ajRaJQgHgSv2+1qc3NTZ2d5X1fMnVQ+/JgoeGlpSVtbW9rf39fR0ZE6nY7a7bYuX74ci9zr9TQajTQYDHTlypUA0p1qiLZ2LJfW8fjVCLNzZPHxEE7IHyw4AsRmAszHfKKJnCs7e8aYZ7UcYeA1DnEmBsBaSAV53MvLpYJMDuRHsMlgIzqd0otFEVbumX66uBp3cpLMQgusJG1vb+vGjRthwlmk4XAYDwvfNaW8RgtNS6BBiTcarN1uB16J0OKPwum8fPlypGPdZDpNUCrI1CyaR/GzAZRU1OJLxWEVmHA2GcKCNkfLck1MMMiBazosC7Q+hBhth7XgWs7B4PtnOQ9oXc/SOT0Qfxq3ZTZ7x2eIMzyBMJu5u91YeIGtVCra3NwsCc5oNNL6+rra7XY48BT6ERyhkV2bOCGkUqno5s2bgRB4Xhu2llT0F8BXhPmEv+uBFeaYCNtJ2FIRwHgJC8HabBJEKsgyPDvFj2hztC5+LYkKID38ZwI+NrZU4KjOxoLY4qlhNoprbTYUcwQe22q14vk8DezcDPxf0sGTyUTNZnNueVh4gU0pxUMyEe12O9KX3tMUf5cACPOIYCA8jUYjIJnr169rOBxGgMJ3MqloE9dCy8vLGg6HpcMkeA/ChfaAiOJFgysrKxoMBiUOq+fzXfgInnq9XqRV/cBnsFi0lJej8HuWZdH5hnnzCgj+x5WRCtwVDco8u6uAQlheXg5r4cwxqdDGbGBntBGXvGwO5ZAKX5RAy9vpzJob3AIi0+Xl5dC2BAn4nevr66pWq7p8+bLa7bauX78e2pbrutbzXPv+/n74g2tra5HIYMEw+8fHxxoOhxHccc/AbmhQNhVFl4eHh7GIBED4xrgOjmBIRe8BBINAzV0hNg2fdaKNIw4OZfHZ2fSyB17MK8/imS6u6cwy8G3Pfs07Xkjnlz9MKV1LKf3H9N+3TF9PKaXfTHmHl/9KKb3BrvWOlNKXpv/ecavv9EF0isZxvM8ddvxFHH60SL/fD4hJUkTS4K31ej3w1Zs3b+rw8FCTySSYSNP7DqzUa8ZIKqChWFTucTQaaWNjQ51OJ9KRLGiv1wuh8oPW0JBeKsPzEzAh7JDIZxMC+IXMAbDfYDCIgk3X4mxGBJz7IEjEwvF3NDjoCJuKuMARhEajUUokMJ8HBwclqui8Yx6XgM4vo5TSqqR/Sil9Yvq3n82y7OMz7/8B5QWGr5b0HZJ+R9J3pJQ2Jf2ipDcqb8Tx2ZTSI1mWdW/1xR5ESEU+HeyOnY1fJ+V+ZL1ej9KYCxculMqf+een08DrHAwGOjw8VLPZjIXhuEl3DyaTiXZ2diL3jnn2gjtJkXrFz/WsF4LGYjoJBPfHv/fZ0qDATGSS9vf3tbm5GTwAgj+p3NwNvJSN6g0/yMQxXBuzcfxeXOBI6kjFYdXwg9nUzvWgjNwVyu3GC+n8cqvxVkl/NP3cPysvB78k6fuUFzDuT4X0k8pbFt124BtKudbC8SfaRPNJ+QTT4BgNIhWtL7vdrvb29rS3txeme2Ulb9158eLFbyCrVKvVQCS8qbEvgmurXq8XkA0CuLm5WarBp3UmJSoETs6qmq3UdQ3lqAP3hZvDUaGYaH5Hm7NZvKAQt4v3oLmXlvIOidynB1meKUPQEWLnJvgpkXy+2WwqpaSnn35ajUaj9Gy3G8+r80uWZY9O//T+qdn/YEqJbXmrDi/Pq/OL70wmF24qk0z0yuuYcAIBZxStr6+HAJGOJWuDoBHsEHyhxbxTopfYYHpZMOfZSsXBdAhKtVpVs9nU0dFRQGfe3hPLwn3jt6PJ8RXZrA7yY6LJ97NxnOonFT45Qu3Bl3Ndye6hrckculVggznW7NrYFQdKgoAZF2Xe8bw6v6SUvlnS+5R3gPk2SZvKy75f8MhmOr+4yYHo4iUV+EIuIM5X9VotSSW89tKlS6GhALfPzs40HA7Dt3VfcXV1NXzbk5OTaOrGhnI2FfcxfSZJhZYhePQEgEfpPA8aGkFKU24F10RjejM7eBLuf3uAIyl8fL7TmWiOBIzH40A8gPC4Fprb3Q6/J59vfGbWDZ4B83bXNawJE51fvj/LsqemZn8i6Q9UlHzfqsPLHXd+wdx4BSY7monb2NgIkJx/CDWfxx/1iSJrAwLBQWzLy8tqt9vx2fF4HBMKDgoExvf4+zyAAcZ5Ng1SrVZ148aN8CfRSicnJ6XeXoeHhyH4S0s5YdqTHAio9w8ATeB++v1+bPxutxs+7mAw0HA4DBeq3+9rNBrF8/hGbrVaoS0nk0n451gELJtzLBwK9Hk5OzsLXght9ecdz7fzy/9O/VKl3Jn6EUmfn37kEUk/MUUL3iSpn2XZU5L+VtL3ppQ6KaWOpO+dvnbLQQRNJgVIZHl5OUwpTrvjj3wOwgfBEubKidi+6xFktBUQEcIEKUbSN6QfMa3OiPJrkaxgkMadzRCtrq4Gi59nwoyicdHgEMR5DV8XvgJug7sEs8kTrAgbFTdiMplof3+/9KyOFGCNcBO63Tx2Zv65V67nZPLT09O49qx/frvxQjq/fDSl9DlJn5O0LelXpu//a0lXlbfT/D1JPz29sX1Jvzy9xmck/dL0tVsOFgtBcy6suwbe8QU/VlKkNmddBsgy7HYCGPfF/J+zuhxyImCAyEK3F4B2RwwQSrT8+vq6dnZ2JJVPA4R74AQfngVr4AkKFx40HXMkFWXmx8fHOjw8jACV76MU5utf/3qpS3m9XtfFixd1eHioJ554ovS8nh1j02CVRqORxuOxJpOJer1eIDBk37BQ+PB34r9KL6zzy5tv8f5M0rtu8bcPS/rwHd2gZXCcKA1WipYaDofRXI1qARYc7YJge3bIubG4ERBlCByc28kg2KlWqwG9cV38Q1K8CAfuCzAVqWb3gREG7+Yy21eBoNJ9RcjRTid0TgD+cr/fj8wUGb/19XU1Go0w2XAVSLcCTzlDjU22trambrcbmPj29nZs1FqtpmvXrqnT6ajZbGowGJQYawRdw+FwbnlY6EwXi+MQCoiA8yylonSbAMHTqywq5kxSBA1oTtABroHWcjCfDA7aGtOHkPm1JEWWC8Sh2+2WNCPPN5viJZVKokAqAknus1arhY/4zDPPqNFo6OjoKASd+WJj9ft9nZycqNVqhQvlcKH7kr4x2OzOaWUeUQBk+jqdjiSVTlgH6z08PCyd+kPZ/nA41Pb29twysdACy2I6KdpTiZh+aH+ei58leeCzsZDeqZBdjyBJBfDtkTVaZTQahaaaNfVScehFvV6PDYa/R8TvDS0QPgQQzYp7wnBc1aE35yHgilBahAbju4GTpPxwE4QTxADOrFMFiRVAMNjAbAg2kJcr8fmlpSUNh0Otrq6q3+9LUlTUHhwcBIF93rHQAuv+DYsulU/nxoSBEJAgIKgBzqlUKnEIsFSA/1LhQjjzyrt5o6XQXpKiuoGMEZkrhB90AK3smK2UVx0QPXNf4/E47kMqTo8hCcDzEkDif2Jt0H70kl1ZWVGj0VCz2dTGxkb0bEUI6ZLtlQcIGfgvggmc5ugFeO/TTz9dSohIubYdDoeBDlDQ6dBdq9VSSqmUIbvdWGiBlQr/E4AfbQnEQwqTxSVYwX8kkHI+KWYQc4rwOsAt5ZqbgyzQKh4lewcZr15l06Bx6KXA9zurf2VlJYSfwA1XBPjOBcbT1Wg75gmNjj+KdfAoHfQAMszx8bH29vbi+dy1YqOenp4GBRArUK1Ww8w//PDDOj4+Vr1eD1M/GAyCm0zFMJuFwBiKqMcGtxsLL7CeLkTYvKbp9PQ0TN/e3l6YZiAnh8XwQwm4uI7zENCwTsymutV9O0cAvIGEp2XRiODEXBvtxmacTaVCzsbkS0XXFDS8Q00OqeFLQ7bxAAztX61WdeHChbAoBF2VSqV0X/QK4x78/DLuDaFGadRqtdC+rJ+jHbhlGxsbyrIsLOG8Y+EFtlKpRAoTEjOaE000Go0isgcUx79CK/KapDC7aETal/u/8Xisr33ta+EPM9EIHoI8i4Mi6NyHY5dsOH8fXAE2A8EMGhgfFDPsZrxarQYlETiN4IiNQOMOnwMIKN61xS2N+9UbGxvhUuDnc22p4HmgNUku4PNubm6WSuv91EayaC9apuulHkAyaUriXl1djc4v5M2Pjo509epVLS0thS95cHBQ6lNKlsexWIZrPrQ5wR2lNExspVIp9f1HuMg0TSaT6D0r5eZ7PB6XMFFHNuBFsAG8T5hUnEIOjxXLwIJ7uyE0OhE5m4W/zZ6k7ckXzD9WA8Hlu9iMjovzfAgg94wLgCXk/awjfrxvfA8sbzcWWmAlBUbnE0yqdWlpSePxWDs7O4FBspj1ej0m3M8BQNDQKM5pJdAaDAbh5yFABAy+ISRFrykWm4VCa5AqdqKOaz8vKQHTBTNFE6Pl8YsRHNwU11CkWclugeN6WhmtTooZ+Aw/E22J0CJ4uADMGdp9aSkv7sQdcheCeWG9SCJgQZyQM89YeIFFk4I1spj4Za95zWt05cqVaL/JIpPbh4/pZglNBfzjmkUqH8iM74fAwT1l45ycnOj69euRtl1ZWSn1ZuW7HArCZ/YEBawlBIdNgSlnQ0kKrYwfz//MkQd/TlWkDs0PIeF3gj1QFSJ8XBoQDTTjcDiMOjq0puO6HmN4BnF5eTn4xl4ONO9YaIFFI7qDz4Jubm5GwCWVgX8mBd+TyJTgB415dnamxx57LOAbz+GDc0oqaV+E3MuvqTFzN4T7p5qA35eXl4PAjE/Xbrdj4RAIWuSnlEoHOKNhXUgQaOecsjEIwGBfIXRQKt2Xd1ZYu90OBeEbDfeCIE0qWGmOR/PsrA2pZRdwlM/LJtOFdqNJ2snJSfhMCI1UdOYmUCDocbBfys03ZGwm8HWve12pIJBgibQtvhnC5H0DPPBAkJ955pnAF4m00VLwaR3aWVtbU7/fD4QB4ZMK/xpBRCtOJhN1u93gqXJ9RyjQkE7ycZ+UjVyv12NzZlkWLgURPFYFtwdfGEXCd+MiuL/rTDW3Cs41TikFoWiesdACKxXsH4jUQCT4oF4FIBUpV7SflNMCn3jiiQhADg8P1ev1wt/CPAF8U5sEc8qL58iYgUwgILON0RC+tbW1oOLxHQRrzoN1Dem4LhsOrS0petY6Udo5BJIiOB2NRiFYCJdvNEmxgVJKarVawbvwIItMIhYN7Y7QEajht7pGzrKsdKIibpNnzeYdCy+wm5ubcYCaVBxcDBkDSMcphPi8RLGnp6dqt9uqVqva2NgIAJ1o1f1TJhK/1ttcAi9h2jF5aHsWkOuCHDg31TtnsxHwH+ECcE1vTe8MMwQYaA93yM0swWa73Y5AkE3CQGDYIMQGzvN1P9bdKwI23AzQD/Dig4OD2Ii4W+vr65FqJ+hiTecdCy+wbpYRgJOTkwhw8PNgbFUqlYjyYR15RmVpaUmNRiM0HzVYaJRarRaa5ezsLHBMNDwLBIpA4AFhBfOIuT06OopFcpoji08u3ktj+H73W6WCF8HzI5gO8/lzeyUAvipcBVySlZUVPfnkk3ENtxYwqggyHegHjtra2pKkUrMSmGMI92AwKH2W+SMgfVlpWASHXYl2w0dCO0oFobndbpeOHpIK8grwFsKAUDGJ4/E4uJpeOsL3YGrxLVkA8uVoZ8yoVPTCQrDRhpjk8Xhcouv1er1AOzwNitVA4Lg+yRQ2AFZEKo5UokrYu9Gg/TudTviwjhWD6c6mxJmn4XAYlgWrQtMQXCLSzSATnhb3JMO8Y+EFFmF0goTT1tB+KysrunDhQmiZSqWivb29wF2Z1MFgoMFgEAK6v78f5ovFGgwG4Xd61QDX8GBDUgjTLJQDRuvwkhPGQSMwxQQ9BG3grrglBH4ElVtbW2HuwUrJgDl3gp9pcYSw4ErhKqARnXbpXGI2LK4NG0RSyS/H+sCBIKvGKYk8S7fbLRWIzjMWWmDZfU5jQ9uhzTC9BANoAe8XwDVwDTBxZ2dn0Qzu9PQ0Gs75cZI0S/bUpVTwUxFGSMzUQaFl0DzOA0AjY9o55IKUKAC+8x6cD8Hfh8NhkE0IMLku34dGdWF3M+yQFpsWjdfpdOLea7Va4LatViuKMQlEWYuUciI3XAI2AsGsM+rcUs475hbYlJd6/3tK6a+mvz+UUno05R1e/jSltDZ9vTL9/bHp3x+0a7xv+voXU0rfN8d3Rmfp1dXVyGYxMZ7l8d0t5abPS1bQQmgWgjN8PVj1bAznDYCbEpBBOOl2u9HdpVqtxt95j0M5uDTevQZojQXH7ZjdHAgdHFKCQ1LVzBVZMuah3+/HtRFk/xlLQdCDj0/BYa/XK2UW2TDD4VDtdjuuxcmSUnHgMs/tmTSpSLezhiRi5h13omHfrfzYecYHJH0wy7JXSepKeuf09XdK6k5f/+D0fUopvVbS2yS9TnkDjd9OKT1nJ1v8OphJ/X4/BBF/Cz5BvV4v8WMl6eLFi8EHxQUgQyMpsNbt7W1NJhN1Op2IxAnW3KfD1NFNsdls6vr16yV47eTkRP1+v9S3FXM6GAwiIMum5SpoKtwbhGp/fz/M7mg0KvFruf+jo6OA13Z3dwNjxqS7C8O98RmYWGC0WK9Za4Kg8TubHs1L2pd14IA7cGonBa2vr6vZbIbr4Ws475i3kcYDkn5Q0u9Pf0+S3iyJNkUfUV45K+WdXz4y/fnjkr5n+v63SvqTLMsmWZZdU16k+A2ngc98rySFD9RoNNRoNCIzgm+KEEtFDh3YihoqcugQWzC5CAcml8/g541Go29IEPD9Z2dnev3rXx/3ysbi3jDF5PTxY09O8p4GUAkp65YUNMmTkxPt7+/Hs82iCWhAKS9voUXRYDAIH79arcYcwiMAHuNvMNe4N085A5t5YoGNKxVtNmfJL2hW1scx8V6vVzrNBghy3jGvhv11ST8nCe94S1IvyzKYt97FJTq8TP/en77/eXd+ceodJA4CHIITUoaYOPwmAh9ex1/yqlZHBPB1MZecfSAVGTWEGUH0GiZYZVAiXXBdeJrNpra3t1Wr1YIHwfUx0eT0J5NJkLNpHcQzOOEa9+bq1ava29srYaONRqPEWOMejo+PI7ePq0PXGII4yC6OtOD+kClj/lECWBcG2pyUs1Mq72qJTErphyTdyLLss3Nf9QWMbKbzC+YZ08eDrqysRLDiTR38mCOCLrQSZOSlpSXdvHmzxMin7sg7pHgE78RlMj7eKMN/hlfgTUAAzYGE8EfZcFK+qGTZ0OzguwiPw3lS+dxciNTXrl3T7u5uBHxsaMeJ0WwbGxvq9/ulKggpZ8m5osBnhgtANYGzww4ODiIwI6MG1DVdW41GoyCbM2d3MubRsN8p6YdTSo9L+hPlrsBvKG/yxhbyLi7R4WX695akm3oenV8kBaAPnodAEaFPv6eUyVlaWtJgMIjgRFIUMcJ0J6AhkCDQQHuwqF7DxeeI5KUiS0OnFK8jI0hESEE9Njc3JUntdruE1aJt0dqUrYNyjMfjOMXFzSraEf/1wQcf1OOPP17qevPVr3415pQSbnp2eU6fDfKxj30sGG0esBL0AbWROEGTe5skL7zELQA1AD50/3+eMU/3wvdlWfZAlmUPKg+aPpVl2Y8rb1n0o9O3vUPSX05/fmT6u6Z//1SWOzCPSHrbFEV4SHk7zn95zpubugMU1bErab1z8+bN8KGAiGBowdbCd/K8NyZyMBiE/+U1WAgCkTF+K5ASk8wC0TKJDQKbyVOcgPCUNLtrgfZiUKZOMCMpIKednZ0I/tC0WA2eodFo6FWvelXMC233yUZR7IhgsUH29/cjOfH2t789yEBOiAeyY06gQmJZ0LDAV2hukAI07NramprNZqkwdJ7xQnDYn5f0npTSY8p91A9NX/+QpK3p6++R9F5JyrLsvyX9maQvSPobSe/Ksuw5vW1MWavVikifvPry8nJoIDTb2dmZdnd3wxfNsiwK8tjhmDw0HSaYSJY6KLJV4LNgoZLCHaExhBO08fWkPANFKbWk0IzgkJSLU0zJ/bHoROb4vviNlK2ADDjnt9frlSiGgPdoNcevEXayglgRfHqUgPurCCZWhs1OMOuaFpfMIT40NQf8ge7MO+7ojIMsyz4t6dPTn6/qWaL8LMuOJP3YLT7/fknvv5Pv5OEwPbVaLVq27+zsBMeVaBQTBBEEoeOcqqOjI924cUOXLl0KTYY2g+RCZoiuKN6+UirwSrS2k1rYJM6icvDfM0F0XkFYWXg2Dv4fggx7jE3Rbrf1+OOPa2trS6985SvDh51tUzQajUoEIifvTCYT1Wq10qaVih6vPHeWZdrd3Q0oa3l5OXxe3DMsIevG9zCPUpER8+zenRx7tNCZLiJIFptEAeYeXJYaf++x5cdsEtkiLFeuXIloeWNjQ61WK1K/sPYhmRwdHUVu35n6Xq6CD4eWx7/z86mOj48jwk8pRacWNpfn7UEXwIGZA4Su1+upUqmoXq/rFa94hY6P8xMeu91u8Cl2dnYiiPQOj/iVbAbHXNGMBFBoVqkgd/McaHLmFUZWNqVfcl1iCHrQIsSsyerq6h31JVjoU2Q8gnbuKe0eyeEDzfA+/DZ80EqlEqYXyAoNjOml3Y5UYIkwpwjG3J2AEVWtVsMXJmuD6ZVUIm5zTzCYgJfQhFJxJi7XBS5CKNDqfF+r1dL29nY8M+4Aw9Ox6+vrcdwmjDYKNxFUJ7szf2QFs6w4CRE+w+npaQSsh4eHAXNJRcsmJ/lIRQebarWqp556KoR6nrHQGlYqTi1x7BXKH5qKSgOHuMBrs2kJhrfwYWEQQk5aRDNIRQWtpDCT3W43KmidKIPbQIoSHxgNxzV4FrS0pPApOU4UgYELwPvxpaWcI3zz5s1gscFnZRMyT8B5+N58nnQyiQgnzzAvXqmBGd/Y2Ag3yt2wbrcbfvTBwUEUi5K0QfEw32yeWq2mVqulBx54YG55SDzMIo6U0lDSF+/1fdzlsS1p717fxF0cd+t5Xpll2c7t3rTQLoGkL2ZZ9sZ7fRN3c6SU/vXl9Ewv9fMsvEtwPs6Hj3OBPR/31Vh0gf3de30DL8J4uT3TS/o8Cx10nY/zMTsWXcOej/NRGucCez7uq7GwAptS+v5p7ddjKaX33uv7udVIKX04pXQjpfR5e20zpfTJlJ9a/smUn0umlI+7dtL5izFSSldSSv+QUvpCyk9vf/dCPRMspkX6J2lZ0pclPSxpTdJ/Snrtvb6vW9zrd0t6g6TP22u/Kum905/fK+kD05/fIukTkpKkN0l6dPq48SQoAAABhElEQVT6pvKzzTYldaY/d+7R81yS9Ibpzw1J/yfptYvyTIuqYb9d0mNZll3NsuxYOXH8rff4np51ZFn2j5JmD8jzurbZere7etL53R5ZfiTrv01/HiovPH2FFuSZFlVg56r/WuDxTVl+XKkkPS3pm6Y/v6CTzl/qkfIS/W+V9KgW5JkWVWBfNiPL7eN9hx2mlOqS/lzSz2RZNvC/3ctnWlSBfV71Xws0rqfi8OhLkm5MX79rJ52/mCOltKpcWD+aZdlfTF9eiGdaVIH9jKRXp7y7zJryWrJH7vE93cnwurbZere7ctL5izVSXo/zIUn/k2XZr9mfFuOZ7nWU/RzR6luUR6hflvQL9/p+nuM+/1jSU5JOlPtp71Re4/b3kr4k6e8kbU7fmyT91vSZPifpjXadn1LeXOQxST95D5/nu5Sb+/+S9B/Tf29ZlGc6T82ej/tqLKpLcD7Ox7OOc4E9H/fVOBfY83FfjXOBPR/31TgX2PNxX41zgT0f99U4F9jzcV+N/wd8vJdmpzxiigAAAABJRU5ErkJggg==\n", 34 | "text/plain": [ 35 | "
" 36 | ] 37 | }, 38 | "metadata": {}, 39 | "output_type": "display_data" 40 | }, 41 | { 42 | "data": { 43 | "text/plain": [ 44 | "" 45 | ] 46 | }, 47 | "execution_count": 34, 48 | "metadata": {}, 49 | "output_type": "execute_result" 50 | }, 51 | { 52 | "data": { 53 | "image/png": "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\n", 54 | "text/plain": [ 55 | "
" 56 | ] 57 | }, 58 | "metadata": {}, 59 | "output_type": "display_data" 60 | } 61 | ], 62 | "source": [ 63 | "img=scipy.misc.imread('my_img.jpg')\n", 64 | "img=img[:,:,0]\n", 65 | "mini=2000\n", 66 | "maxi=0\n", 67 | "pyplot.imshow(img,cmap=cm.gray)\n", 68 | "pyplot.show()\n", 69 | "img=img/255.0\n", 70 | "\n", 71 | "for i in img:\n", 72 | " for j in i:\n", 73 | " if j>maxi:\n", 74 | " maxi=j\n", 75 | " if jcol:\n", 129 | " diff=row-col\n", 130 | " front=int(diff/2)\n", 131 | " back=diff-front\n", 132 | " for i in range(row):\n", 133 | " for j in range(back):\n", 134 | " image[i].append(1)\n", 135 | " for j in range(front):\n", 136 | " image[i].insert(0,1)\n", 137 | " \n", 138 | " return image\n", 139 | " " 140 | ] 141 | }, 142 | { 143 | "cell_type": "markdown", 144 | "metadata": {}, 145 | "source": [ 146 | "# SEGMENTED IMAGE PADDING FUNCTION" 147 | ] 148 | }, 149 | { 150 | "cell_type": "code", 151 | "execution_count": 35, 152 | "metadata": {}, 153 | "outputs": [], 154 | "source": [ 155 | "def pad_image_and_resize(image):\n", 156 | " image_crop=get_cropped_image(image)\n", 157 | " baseheight = 20\n", 158 | " scipy.misc.imsave('temp.jpg', np.matrix(image_crop))\n", 159 | " img=Image.open('temp.jpg')\n", 160 | " hpercent = (baseheight / float(img.size[1]))\n", 161 | " wsize = int((float(img.size[0]) * float(hpercent)))\n", 162 | " img = img.resize((wsize, baseheight), PIL.Image.ANTIALIAS)\n", 163 | " \n", 164 | " #pyplot.imshow(np.matrix(img),cmap=cm.gray)\n", 165 | " #pyplot.show()\n", 166 | " return img\n", 167 | " " 168 | ] 169 | }, 170 | { 171 | "cell_type": "code", 172 | "execution_count": 36, 173 | "metadata": {}, 174 | "outputs": [ 175 | { 176 | "name": "stderr", 177 | "output_type": "stream", 178 | "text": [ 179 | "/usr/local/lib/python2.7/dist-packages/ipykernel_launcher.py:2: DeprecationWarning: `imread` is deprecated!\n", 180 | "`imread` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.\n", 181 | "Use ``imageio.imread`` instead.\n", 182 | " \n" 183 | ] 184 | }, 185 | { 186 | "data": { 187 | "image/png": "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\n", 188 | "text/plain": [ 189 | "" 190 | ] 191 | }, 192 | "metadata": {}, 193 | "output_type": "display_data" 194 | }, 195 | { 196 | "data": { 197 | "image/png": "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\n", 198 | "text/plain": [ 199 | "" 200 | ] 201 | }, 202 | "metadata": {}, 203 | "output_type": "display_data" 204 | }, 205 | { 206 | "data": { 207 | "image/png": "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\n", 208 | "text/plain": [ 209 | "" 210 | ] 211 | }, 212 | "metadata": {}, 213 | "output_type": "display_data" 214 | }, 215 | { 216 | "data": { 217 | "image/png": "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\n", 218 | "text/plain": [ 219 | "" 220 | ] 221 | }, 222 | "metadata": {}, 223 | "output_type": "display_data" 224 | }, 225 | { 226 | "name": "stderr", 227 | "output_type": "stream", 228 | "text": [ 229 | "/usr/local/lib/python2.7/dist-packages/ipykernel_launcher.py:4: DeprecationWarning: `imsave` is deprecated!\n", 230 | "`imsave` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.\n", 231 | "Use ``imageio.imwrite`` instead.\n", 232 | " after removing the cwd from sys.path.\n" 233 | ] 234 | } 235 | ], 236 | "source": [ 237 | "img=process_image()\n", 238 | "image_arr=[]\n", 239 | "mat=img\n", 240 | "get_char_img()\n", 241 | "arr=[]\n", 242 | "for i in range(len(image_arr)):\n", 243 | " arr.append(pad_image_and_resize(image_arr[i]))" 244 | ] 245 | }, 246 | { 247 | "cell_type": "code", 248 | "execution_count": null, 249 | "metadata": {}, 250 | "outputs": [], 251 | "source": [] 252 | } 253 | ], 254 | "metadata": { 255 | "kernelspec": { 256 | "display_name": "Python 3", 257 | "language": "python", 258 | "name": "python3" 259 | }, 260 | "language_info": { 261 | "codemirror_mode": { 262 | "name": "ipython", 263 | "version": 2 264 | }, 265 | "file_extension": ".py", 266 | "mimetype": "text/x-python", 267 | "name": "python", 268 | "nbconvert_exporter": "python", 269 | "pygments_lexer": "ipython2", 270 | "version": "2.7.12+" 271 | } 272 | }, 273 | "nbformat": 4, 274 | "nbformat_minor": 2 275 | } 276 | -------------------------------------------------------------------------------- /.ipynb_checkpoints/K-Means-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 23, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "from sklearn.cluster import KMeans" 10 | ] 11 | }, 12 | { 13 | "cell_type": "code", 14 | "execution_count": 28, 15 | "metadata": {}, 16 | "outputs": [], 17 | "source": [ 18 | "def get_clusters(points,k):\n", 19 | " kmeans = KMeans(n_clusters=2, random_state=0).fit(points)\n", 20 | " n=kmeans.labels_\n", 21 | " clusters=[[]for i in range(k)]\n", 22 | " for i in range(len(n)):\n", 23 | " clusters[n[i]].append(points[i])\n", 24 | " return clusters" 25 | ] 26 | } 27 | ], 28 | "metadata": { 29 | "kernelspec": { 30 | "display_name": "Python 2", 31 | "language": "python", 32 | "name": "python2" 33 | }, 34 | "language_info": { 35 | "codemirror_mode": { 36 | "name": "ipython", 37 | "version": 2 38 | }, 39 | "file_extension": ".py", 40 | "mimetype": "text/x-python", 41 | "name": "python", 42 | "nbconvert_exporter": "python", 43 | "pygments_lexer": "ipython2", 44 | "version": "2.7.12+" 45 | } 46 | }, 47 | "nbformat": 4, 48 | "nbformat_minor": 2 49 | } 50 | -------------------------------------------------------------------------------- /.ipynb_checkpoints/Line_Segmenter-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [], 3 | "metadata": {}, 4 | "nbformat": 4, 5 | "nbformat_minor": 2 6 | } 7 | -------------------------------------------------------------------------------- /.ipynb_checkpoints/Untitled-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stderr", 10 | "output_type": "stream", 11 | "text": [ 12 | "IOPub data rate exceeded.\n", 13 | "The notebook server will temporarily stop sending output\n", 14 | "to the client in order to avoid crashing it.\n", 15 | "To change this limit, set the config variable\n", 16 | "`--NotebookApp.iopub_data_rate_limit`.\n", 17 | "\n", 18 | "Current values:\n", 19 | "NotebookApp.iopub_data_rate_limit=1000000.0 (bytes/sec)\n", 20 | "NotebookApp.rate_limit_window=3.0 (secs)\n", 21 | "\n" 22 | ] 23 | } 24 | ], 25 | "source": [ 26 | "import cv2\n", 27 | "\n", 28 | "img = cv2.imread('tempo.png')\n", 29 | "mser = cv2.MSER_create()\n", 30 | "\n", 31 | "#Resize the image so that MSER can work better\n", 32 | "img = cv2.resize(img, (img.shape[1]*2, img.shape[0]*2))\n", 33 | "\n", 34 | "gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n", 35 | "vis = img.copy()\n", 36 | "\n", 37 | "regions = mser.detectRegions(gray)\n", 38 | "hulls = [cv2.convexHull(p.reshape(-1, 1, 2)) for p in regions[0]]\n", 39 | "cv2.polylines(vis, hulls, 1, (0,255,0)) \n", 40 | "\n", 41 | "cv2.namedWindow('img', 0)\n", 42 | "cv2.imshow('img', vis)" 43 | ] 44 | }, 45 | { 46 | "cell_type": "code", 47 | "execution_count": null, 48 | "metadata": {}, 49 | "outputs": [], 50 | "source": [] 51 | } 52 | ], 53 | "metadata": { 54 | "kernelspec": { 55 | "display_name": "Python 3", 56 | "language": "python", 57 | "name": "python3" 58 | }, 59 | "language_info": { 60 | "codemirror_mode": { 61 | "name": "ipython", 62 | "version": 3 63 | }, 64 | "file_extension": ".py", 65 | "mimetype": "text/x-python", 66 | "name": "python", 67 | "nbconvert_exporter": "python", 68 | "pygments_lexer": "ipython3", 69 | "version": "3.5.2" 70 | } 71 | }, 72 | "nbformat": 4, 73 | "nbformat_minor": 2 74 | } 75 | -------------------------------------------------------------------------------- /Character_Segmenter_Utilities.py: -------------------------------------------------------------------------------- 1 | 2 | # coding: utf-8 3 | 4 | # In[1]: 5 | 6 | 7 | import tensorflow as tf 8 | import tflearn 9 | from tflearn.layers.conv import conv_2d,max_pool_2d 10 | from tflearn.layers.core import input_data,dropout,fully_connected 11 | from tflearn.layers.estimator import regression 12 | import scipy.io 13 | import numpy as np 14 | import matplotlib.pyplot as pyplot 15 | from PIL import Image 16 | import matplotlib.cm as cm 17 | from pprint import pprint 18 | import scipy.misc 19 | import PIL 20 | image_arr=[] 21 | 22 | # In[2]: 23 | 24 | 25 | def is_background(mat,colno): 26 | row,col=mat.shape 27 | for i in range(0,row): 28 | if mat[i][colno]<0.9: 29 | return False 30 | return True 31 | 32 | 33 | # In[3]: 34 | 35 | 36 | def get_matrix(mat,col_no): 37 | matrix=[] 38 | row,col=mat.shape 39 | for i in range(col_no,col): 40 | if is_background(mat,i)==False: 41 | z=mat[:,i] 42 | matrix.append(z) 43 | else: 44 | break 45 | matrix=np.matrix(matrix) 46 | matrix=np.transpose(matrix) 47 | #pyplot.imshow(matrix,cmap=cm.gray) 48 | #pyplot.show() 49 | image_arr.append(matrix.tolist()) 50 | return i 51 | 52 | 53 | # In[4]: 54 | 55 | 56 | def get_char_img(mat): 57 | row,col=mat.shape 58 | col_no=0 59 | curr_col=0 60 | while True: 61 | for i in range(curr_col,col): 62 | found=is_background(mat,i) 63 | if found==False: 64 | col_no=i 65 | break 66 | if i==col-1: 67 | break 68 | else: 69 | curr_col=get_matrix(mat,col_no) 70 | 71 | 72 | 73 | # In[22]: 74 | 75 | 76 | def process_image(file_name): 77 | img=scipy.misc.imread(file_name) 78 | img=img/255.0 79 | #pyplot.imshow(img,cmap=cm.gray) 80 | #pyplot.show() 81 | return img 82 | 83 | 84 | # # SEGMENTED IMAGE PADDING FUNCTION 85 | 86 | # In[23]: 87 | 88 | 89 | def pad_image_and_resize(image): 90 | image_crop=get_cropped_image(image) 91 | baseheight = 20 92 | scipy.misc.imsave('temp.jpg', np.matrix(image_crop)) 93 | img=Image.open('temp.jpg') 94 | hpercent = (baseheight / float(img.size[1])) 95 | wsize = int((float(img.size[0]) * float(hpercent))) 96 | img = img.resize((wsize, baseheight), PIL.Image.ANTIALIAS) 97 | 98 | #pyplot.imshow(np.matrix(img),cmap=cm.gray) 99 | #pyplot.show() 100 | return img 101 | 102 | 103 | 104 | # In[70]: 105 | 106 | 107 | def get_cropped_image(image): 108 | new_img=[] 109 | for i in image: 110 | x=True 111 | for j in i: 112 | if j<0.5: 113 | x=False 114 | break 115 | if x==False: 116 | new_img.append(i) 117 | image=np.matrix(new_img) 118 | 119 | row,col=image.shape 120 | image=image.tolist() 121 | for i in range(row): 122 | for j in range(10): 123 | image[i].insert(0,1) 124 | for j in range(10): 125 | image[i].append(1) 126 | row=len(image) 127 | col=len(image[0]) 128 | 129 | for j in range(10): 130 | image.append([1.0 for i in range(col)]) 131 | for j in range(10): 132 | image.insert(0,[1.0 for i in range(col)]) 133 | row=len(image) 134 | col=len(image[0]) 135 | if row>col: 136 | diff=row-col 137 | front=int(diff/2) 138 | back=diff-front 139 | for i in range(row): 140 | for j in range(back): 141 | image[i].append(1) 142 | for j in range(front): 143 | image[i].insert(0,1) 144 | 145 | return image 146 | 147 | 148 | 149 | # In[80]: 150 | def main(img): 151 | matr=process_image(img) 152 | get_char_img(matr) 153 | arr=[] 154 | for i in range(len(image_arr)): 155 | arr.append(pad_image_and_resize(image_arr[i])) 156 | return arr 157 | 158 | -------------------------------------------------------------------------------- /Character_Segmenter_Utilities.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/Character_Segmenter_Utilities.pyc -------------------------------------------------------------------------------- /Contrast_Ultimate.py: -------------------------------------------------------------------------------- 1 | 2 | # coding: utf-8 3 | 4 | # In[2]: 5 | 6 | 7 | import scipy.io 8 | import matplotlib.pyplot as pyplot 9 | import matplotlib.cm as cm 10 | 11 | 12 | # In[8]: 13 | 14 | def main(imagename): 15 | img=scipy.misc.imread(imagename) 16 | img=img/255.0 17 | image_new=[] 18 | 19 | for i in img: 20 | temp=[] 21 | for j in i: 22 | if j<0.4: 23 | temp.append(0.0) 24 | else: 25 | temp.append(1.0) 26 | image_new.append(temp) 27 | 28 | scipy.misc.imsave('super_contrast.jpg', image_new) 29 | 30 | -------------------------------------------------------------------------------- /Image Segmenter.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 9, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import scipy.io\n", 10 | "import numpy as np\n", 11 | "import matplotlib.pyplot as pyplot\n", 12 | "from PIL import Image\n", 13 | "import matplotlib.cm as cm\n", 14 | "from pprint import pprint\n", 15 | "import scipy.misc\n", 16 | "import PIL" 17 | ] 18 | }, 19 | { 20 | "cell_type": "code", 21 | "execution_count": 10, 22 | "metadata": {}, 23 | "outputs": [], 24 | "source": [ 25 | "def is_background(colno):\n", 26 | " row,col=mat.shape\n", 27 | " for i in range(0,row):\n", 28 | " if mat[i][colno]<0.9:\n", 29 | " return False\n", 30 | " return True" 31 | ] 32 | }, 33 | { 34 | "cell_type": "code", 35 | "execution_count": 11, 36 | "metadata": {}, 37 | "outputs": [], 38 | "source": [ 39 | "def get_matrix(col_no):\n", 40 | " matrix=[]\n", 41 | " row,col=mat.shape\n", 42 | " for i in range(col_no,col):\n", 43 | " if is_background(i)==False:\n", 44 | " z=mat[:,i]\n", 45 | " matrix.append(z)\n", 46 | " else:\n", 47 | " break\n", 48 | " matrix=np.matrix(matrix)\n", 49 | " matrix=np.transpose(matrix)\n", 50 | " pyplot.imshow(matrix,cmap=cm.gray)\n", 51 | " pyplot.show()\n", 52 | " image_arr.append(matrix.tolist())\n", 53 | " return i" 54 | ] 55 | }, 56 | { 57 | "cell_type": "code", 58 | "execution_count": 12, 59 | "metadata": {}, 60 | "outputs": [], 61 | "source": [ 62 | "def get_char_img():\n", 63 | " row,col=mat.shape\n", 64 | " col_no=0\n", 65 | " curr_col=0\n", 66 | " while True:\n", 67 | " for i in range(curr_col,col):\n", 68 | " found=is_background(i)\n", 69 | " if found==False:\n", 70 | " col_no=i\n", 71 | " break\n", 72 | " if i==col-1:\n", 73 | " break\n", 74 | " else:\n", 75 | " curr_col=get_matrix(col_no)\n", 76 | " " 77 | ] 78 | }, 79 | { 80 | "cell_type": "code", 81 | "execution_count": 33, 82 | "metadata": {}, 83 | "outputs": [], 84 | "source": [ 85 | "def process_image():\n", 86 | " img=scipy.misc.imread('conv.png')\n", 87 | " img=img[:,:,0]\n", 88 | " img=img/255.0\n", 89 | " pyplot.imshow(img,cmap=cm.gray)\n", 90 | " pyplot.show()\n", 91 | " return img" 92 | ] 93 | }, 94 | { 95 | "cell_type": "code", 96 | "execution_count": 34, 97 | "metadata": {}, 98 | "outputs": [], 99 | "source": [ 100 | "def get_cropped_image(image):\n", 101 | " new_img=[]\n", 102 | " for i in image:\n", 103 | " x=True\n", 104 | " for j in i:\n", 105 | " if j<0.5:\n", 106 | " x=False\n", 107 | " break\n", 108 | " if x==False:\n", 109 | " new_img.append(i)\n", 110 | " image=np.matrix(new_img)\n", 111 | " \n", 112 | " row,col=image.shape\n", 113 | " image=image.tolist()\n", 114 | " for i in range(row):\n", 115 | " for j in range(10):\n", 116 | " image[i].insert(0,1)\n", 117 | " for j in range(10):\n", 118 | " image[i].append(1)\n", 119 | " row=len(image)\n", 120 | " col=len(image[0])\n", 121 | " \n", 122 | " for j in range(10):\n", 123 | " image.append([1.0 for i in range(col)])\n", 124 | " for j in range(10):\n", 125 | " image.insert(0,[1.0 for i in range(col)])\n", 126 | " row=len(image)\n", 127 | " col=len(image[0])\n", 128 | " if row>col:\n", 129 | " diff=row-col\n", 130 | " front=int(diff/2)\n", 131 | " back=diff-front\n", 132 | " for i in range(row):\n", 133 | " for j in range(back):\n", 134 | " image[i].append(1)\n", 135 | " for j in range(front):\n", 136 | " image[i].insert(0,1)\n", 137 | " \n", 138 | " return image\n", 139 | " " 140 | ] 141 | }, 142 | { 143 | "cell_type": "markdown", 144 | "metadata": {}, 145 | "source": [ 146 | "# SEGMENTED IMAGE PADDING FUNCTION" 147 | ] 148 | }, 149 | { 150 | "cell_type": "code", 151 | "execution_count": 35, 152 | "metadata": {}, 153 | "outputs": [], 154 | "source": [ 155 | "def pad_image_and_resize(image):\n", 156 | " image_crop=get_cropped_image(image)\n", 157 | " baseheight = 20\n", 158 | " scipy.misc.imsave('temp.jpg', np.matrix(image_crop))\n", 159 | " img=Image.open('temp.jpg')\n", 160 | " hpercent = (baseheight / float(img.size[1]))\n", 161 | " wsize = int((float(img.size[0]) * float(hpercent)))\n", 162 | " img = img.resize((wsize, baseheight), PIL.Image.ANTIALIAS)\n", 163 | " \n", 164 | " #pyplot.imshow(np.matrix(img),cmap=cm.gray)\n", 165 | " #pyplot.show()\n", 166 | " return img\n", 167 | " " 168 | ] 169 | }, 170 | { 171 | "cell_type": "code", 172 | "execution_count": 36, 173 | "metadata": {}, 174 | "outputs": [ 175 | { 176 | "name": "stderr", 177 | "output_type": "stream", 178 | "text": [ 179 | "/usr/local/lib/python2.7/dist-packages/ipykernel_launcher.py:2: DeprecationWarning: `imread` is deprecated!\n", 180 | "`imread` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.\n", 181 | "Use ``imageio.imread`` instead.\n", 182 | " \n" 183 | ] 184 | }, 185 | { 186 | "data": { 187 | "image/png": "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\n", 188 | "text/plain": [ 189 | "" 190 | ] 191 | }, 192 | "metadata": {}, 193 | "output_type": "display_data" 194 | }, 195 | { 196 | "data": { 197 | "image/png": "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\n", 198 | "text/plain": [ 199 | "" 200 | ] 201 | }, 202 | "metadata": {}, 203 | "output_type": "display_data" 204 | }, 205 | { 206 | "data": { 207 | "image/png": "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\n", 208 | "text/plain": [ 209 | "" 210 | ] 211 | }, 212 | "metadata": {}, 213 | "output_type": "display_data" 214 | }, 215 | { 216 | "data": { 217 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEcAAAEACAYAAADhmmt/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAC85JREFUeJztnW+QVWUdxz+/jT+xwKK064qhIuKYUyYwrpDO1DpoyJ+G6YUTLzAVa2ymJl9IitbE8qbJyDLHRrMcR7NWTEOZWQXaiF6BYfyRSUT+9EcydjGhIMNg+fXiee7uZTn749zde+7ds/w+M3f23GfPfZ5zPvc5z717znfPI6qKk0xNtTdgMONyDFyOgcsxcDkGLscgEzkicpOIvCkib4nIvVm0UQmk3N9zRKQGeAuYBbwDbAYWquqbZW2oAmTRc64BdqvqX1X1OPAssCCDdjInCzkfBd4uer4/luWOLORIQlku/0YZlkGd+4GLip5PJIw9pyAiVRGmqklvXiJZ9JzNwBQRuVhERgALgdVJK6pq92PZsmWJy+X8XamUveeoapeIfA1YR5D/hKruLHc7lSCLwwpVXQNcnkXdlWTQfENubm5OXM7qd2ko+5fA1A2LaKXbFpGqD8hDBpdj4HIMXI6ByzFwOQYux8DlGLgcA5dj4HIMXI6ByzFwOQYux8DlGLgcg0zOIadl+fLlJa1/9dVXM2/evFPK9u7dy8aNG1m0aFE5Nw2o8mnSctaXZj9KPU1a1Z7T1NSUet2uri62bNmS4dacTu5PsIuEjpBFz/EB2cDlGORaTltbW7YNFF94T3oATwAdwOtFZecSroXvAtYC44p+9zCwG9gGTDXq1YFSX1+vgNbV1aVaP7Z5xn0uPNL0nCeB2b3KlgLtqno5sB64D0BE5gCXquplwJ3AY/1909Jw5MgRAJYsWZJNA2kMAhdzas95E2iMy+cDO+PyY8AXitbbWVgvoc4B9ZpCTyilHjLoOUmcp6odcQ8PAOfF8t6Rt7+T08gblH9AHjKRN+j/N+QOEWlU1Q4ROR/ojOX7gQuL1kuMvBVoaWnpXm5ubu5XTMRiw4YNbNiwof8VpDn2gEnAjqLnDwD3xuWlwHfj8lygLS7PBDYZdfZ3qDllDEmqZ8WKFVpfX68ioitWrOj3mJNGzC8J7/4HwN+A2wkf5e2Ej/LfAOcUrf8IsAfYDkzPSs727du75bS0tOjs2bO7nyc9Ro8eXX45WT2K5Vg71d/HwoULE8tzJ2fs2LH9ljBlyhRtamrSpqYmbWlpSexlK1eu1KampnzK6Q8FOW1tbSW9ppRtzO0pi8Kpiq6uLmpq0n0jOetOWaQV06+6M6s5Q06cOFGRdnIpp7W1tSLt5FLOo48+CsCECRMybSeXA3JhMO7s7KShoaGk151VA3KWuByDXMsZOXJkpvXnTs6NN94IQG1tLXV1dZm2lTs57e3tAKddM8+CXH1aHT9+nBEjRgDprnAmtDl0P63mz59f0fZyI0dV2bNnDwCLFy+uSJu5kXPo0CH27dtX0TZzM+Z0dnbS2NgI9G+8iW0OzTGnoaGB1tZWOjo6KtZmbnpOmdocmj2nGrgcA5dj4HIMXI6ByzE4oxwRmSgi60XkDRHZISJfj+Xnisg6EdklImtFZFzRax4Wkd0isk1Epma5A5lypqt+hOTW1Lg8hhAe+BghaXFPLL+XnqTFHHqSFjPoI2lBGVIWpULWl4OBF4EbGGD0LQ9yShpzRGQSMBXYFHd4SEffUssRkTHA88BdqnqUvuNsQyb6lir2JiLDCGJ+rqovxeIBR9+GSuztaeAHvcoGFH0jB2NOGjHXAV2ERPpWYAtwEzCeAUTf8iDHT1kY+DdkA5dj4HIMXI6ByzFwOQYux8DlGLgcA5dj4HIMXI6ByzFwOQYux8DlGLgcA5dj4HIMXI6ByzFwOQYux8DlGLgcA5djkCb2NlJEXhWRrTH2tiyWTxKRTTH21hqTGIjICBF5NsbeNorIRXYLg5czylHVD4DrVXUaIbg0R0RmEFIWD2q449th4I74kjuA9zTc8e0h4HuZbHklKCV1ANQCrxEmMu0EarQnavJKXF4DzIjLHwIO9lFXhnmKZMgi9iYiNSKyFThAiJvsBQ6r6sm4SvFEpt2xN1XtAg6LyPgBvH9VI1WyK0qYJiJ1wCrgiqTV4s/eEQ+hj9jbkEh26amHw7eBJaQ/rDr7qCfjg+h0KPdhJSL1hQC2iIwixGzfAH4H3BxXuxUoZAVXx+fE36/v/1tXZc5kD7iSEHXbBrwOfDOWXwK8Sph+eyUwPJaPBJ4j3Lx1EzCpj3or1F96wGNvZpseeysXLsfA5Ri4HAOXY+ByDFyOgcsxcDkGLsfA5Ri4HAOXY+ByDFyOgcsxcDkGLsfA5Ri4HAOXY+ByDFyOgcsxcDkGLseglDsv1YjIFhFZHZ977K2IuwjpigIee4sX+ycSEl3NwOpYdhCPvQHwQ+AbxISWiHwEOKRne+xNROYBHaq6TUSaC8WcHm87+2JvwHcIU1TuA/4BHAWewWNvoKr3q+pFqjoZWAisV9VFeOzttHf7M/QMyB57ywqPveUcl2PgcgxcjoHLMXA5Bi7HwOUYuBwDl2PgcgxcjoHLMXA5Bi7HwOUYuBwDl2PgcgxcjoHLMXA5Bi7HwOUYuBwDl2OQ9rZUfxGR7fGOb3+IZUN+ktO0Peck0Kyq01T1mli2FGjXEHtbD9wHICJzgEs1xN7uJMzrmUvSypGEdRcAT8Xlp+LzQvnTAKr6KjBORBoHuJ1VIa0cBdaKyGYR+VIsG/KTnKa62xtwraoeEJEGYJ2I7KIMk5zmPvbW+wEsA+6maE5g7LmDu+cY7lVPNgklAzK421ttnBoXERkNfBbYQYi33RZXu41TY29fjOvPJNxssaP/b1/1SHNYNQKrRETj+r9Q1XUi8hrwnIgsJgQqbwZQ1ZdFZK6I7AH+A9ye0bZnjsfeDPwbsoHLMXA5Bi7HwOUYuBwDl2PgcgxcjoHLMXA5Bi7HwOUYuBwDl2PgcgxcjoHLMXA5Bi7HwOUYuBwDl2PgcgxcjkHaZNc4EfmViOwUkT+JyAxPdvXwI+BlVb0CuIqQnBjyya40kZOxwN6E8u5oCXYEpTuq0uv1WSVN+oQMbmg2GXhXRJ6M9wl8XERqOQuSXWnkDAOmAz9W1emEWMlSypDsGuykyefsB95W1dfi8xcIcjpEpFFVO0TkfMINzgrrX1j0+onAO0kVD/bYW6p8joj8Hviyqr4VZ52ujb96T1UfEJGlwDmqulRE5gJfVdV5Mdn1kKrOTKhT07RdTkrN56TNAV4FbCbM5flrYBwwHmgHdhHuPnlO0fqPAHuA7cD0PurMatztE/yGZmabnuwqFy7HwOUYuBwDl2PgcgwGjZzib7K9v9Vm8bs0uByDQSNnMOJyDKr650M12i3lz4eqyckDflgZuByDtP8AW1ZEZA1wA9AFfB/4FHAB4Vzzh4H/Es4eDovrXACcAMYA78fyGqANGB7rGhVf92fgcuAYPadsTxJuln838FPgXGALcIuqnuhrOyvec0SkBvgE8DnCibIFwMOE/xF9gLBzjxPmrxkOvEwQc4xw4v6fwDOqOirWMxlYDowgzGtzlCDpPeCPhJN0rwCHCLMKJM2Pk0g1DqtrCP9AW5jU5xnCO72A8K6+QZgyYRphR68lbOcYQk8YD1wsImNj2SXAU7EH/IRwMWB3rHtifIwinPu+LP6EcKOAz1sbWg05vS/dFOapOY+wE1OBbxF6Qg1wD/BvwnwSEtf5NOEQOUg4n/2KiDwe1xsO/Ax4kNCrLgX+BfyW8OlcPD/OBdaGVkOOdenmeeAuVb0qlo0hjDkF5hLGon2E2UuuBE5qzyWj++N6awk98TDhcBoNzDHaTaQacvYDxROCTQQOEHrKi6r6UrzUc5JwIv8lQs8aRtj5cYSet5og5Fi8V8YLwHzCDl9PEHiQMEatAmYBGse8QruJl4wKVEPOZmAKYeNqCD1gJuGy8fAYSLiVMJi+C9xC2NEO4CuEgfYAcB1hoN5K+Kf/WcCEuO7UWOcBwhXXWYRPqN0kz4+TTCmXKsr1IEzic4LQO47EnzsIA/BJwsf1TsLlnV3A64Tx5Bhh/Hif0CvWRDlH4uN/wMcJl4zeJfSso/E17cAnSZgfZ9BdmskD/g3ZwOUYuBwDl2PgcgxcjoHLMXA5Bv8HZLLM3x8H/2cAAAAASUVORK5CYII=\n", 218 | "text/plain": [ 219 | "" 220 | ] 221 | }, 222 | "metadata": {}, 223 | "output_type": "display_data" 224 | }, 225 | { 226 | "name": "stderr", 227 | "output_type": "stream", 228 | "text": [ 229 | "/usr/local/lib/python2.7/dist-packages/ipykernel_launcher.py:4: DeprecationWarning: `imsave` is deprecated!\n", 230 | "`imsave` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.\n", 231 | "Use ``imageio.imwrite`` instead.\n", 232 | " after removing the cwd from sys.path.\n" 233 | ] 234 | } 235 | ], 236 | "source": [ 237 | "img=process_image()\n", 238 | "image_arr=[]\n", 239 | "mat=img\n", 240 | "get_char_img()\n", 241 | "arr=[]\n", 242 | "for i in range(len(image_arr)):\n", 243 | " arr.append(pad_image_and_resize(image_arr[i]))" 244 | ] 245 | }, 246 | { 247 | "cell_type": "code", 248 | "execution_count": null, 249 | "metadata": {}, 250 | "outputs": [], 251 | "source": [] 252 | } 253 | ], 254 | "metadata": { 255 | "kernelspec": { 256 | "display_name": "Python 3", 257 | "language": "python", 258 | "name": "python3" 259 | }, 260 | "language_info": { 261 | "codemirror_mode": { 262 | "name": "ipython", 263 | "version": 2 264 | }, 265 | "file_extension": ".py", 266 | "mimetype": "text/x-python", 267 | "name": "python", 268 | "nbconvert_exporter": "python", 269 | "pygments_lexer": "ipython2", 270 | "version": "2.7.12+" 271 | } 272 | }, 273 | "nbformat": 4, 274 | "nbformat_minor": 2 275 | } 276 | -------------------------------------------------------------------------------- /K-Means.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 23, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "from sklearn.cluster import KMeans" 10 | ] 11 | }, 12 | { 13 | "cell_type": "code", 14 | "execution_count": 28, 15 | "metadata": {}, 16 | "outputs": [], 17 | "source": [ 18 | "def get_clusters(points,k):\n", 19 | " kmeans = KMeans(n_clusters=2, random_state=0).fit(points)\n", 20 | " n=kmeans.labels_\n", 21 | " clusters=[[]for i in range(k)]\n", 22 | " for i in range(len(n)):\n", 23 | " clusters[n[i]].append(points[i])\n", 24 | " return clusters" 25 | ] 26 | } 27 | ], 28 | "metadata": { 29 | "kernelspec": { 30 | "display_name": "Python 2", 31 | "language": "python", 32 | "name": "python2" 33 | }, 34 | "language_info": { 35 | "codemirror_mode": { 36 | "name": "ipython", 37 | "version": 2 38 | }, 39 | "file_extension": ".py", 40 | "mimetype": "text/x-python", 41 | "name": "python", 42 | "nbconvert_exporter": "python", 43 | "pygments_lexer": "ipython2", 44 | "version": "2.7.12+" 45 | } 46 | }, 47 | "nbformat": 4, 48 | "nbformat_minor": 2 49 | } 50 | -------------------------------------------------------------------------------- /KMeansUtilities.py: -------------------------------------------------------------------------------- 1 | 2 | # coding: utf-8 3 | 4 | # In[23]: 5 | 6 | 7 | from sklearn.cluster import KMeans 8 | 9 | 10 | # In[28]: 11 | 12 | 13 | def get_clusters(points,k): 14 | kmeans = KMeans(n_clusters=2, random_state=0).fit(points) 15 | n=kmeans.labels_ 16 | clusters=[[]for i in range(k)] 17 | for i in range(len(n)): 18 | clusters[n[i]].append(points[i]) 19 | return clusters 20 | 21 | -------------------------------------------------------------------------------- /KMeansUtilities.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/KMeansUtilities.pyc -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Sparsha Saha 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Line_Segmenter_Utilities.py: -------------------------------------------------------------------------------- 1 | 2 | # coding: utf-8 3 | 4 | # In[4]: 5 | 6 | 7 | import scipy.io 8 | import numpy as np 9 | import matplotlib.pyplot as pyplot 10 | from PIL import Image 11 | import matplotlib.cm as cm 12 | from pprint import pprint 13 | import scipy.misc 14 | import PIL 15 | 16 | 17 | # In[5]: 18 | image_arr=[] 19 | 20 | def is_background(rowno,mat): 21 | row,col=mat.shape 22 | for i in range(0,col): 23 | if mat[rowno][i]<0.9: 24 | return False 25 | return True 26 | 27 | 28 | # In[7]: 29 | 30 | 31 | def get_line_img(mat): 32 | row,col=mat.shape 33 | row_no=0 34 | new_img=[] 35 | for i in range(row): 36 | if is_background(i,mat)==False: 37 | new_img.append(mat[i]) 38 | else: 39 | if len(new_img)!=0: 40 | image_arr.append(new_img) 41 | new_img=[] 42 | 43 | 44 | 45 | # In[3]: 46 | 47 | 48 | def process_image(ima): 49 | img=scipy.misc.imread(ima) 50 | #img=img[:,:,0] 51 | img=img/255.0 52 | return img 53 | 54 | 55 | # In[12]: 56 | 57 | def main(image_name): 58 | img=process_image(image_name) 59 | mat=img 60 | get_line_img(mat) 61 | return image_arr 62 | 63 | -------------------------------------------------------------------------------- /Line_Segmenter_Utilities.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/Line_Segmenter_Utilities.pyc -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Handwritten-Number-Recognition-With-Image-Segmentation 2 | ## Info About this repository 3 | This Repository is aimed at reading handwritten images of numbers and identifying the number written in it using Image Segmentation and Convolutional Neural Networks 4 | 5 | ## Image Segmentation 6 | The image segmentation algorithm uses contour tracing algorithm to separate the characters from a handwritten number. 7 | For Example :- 1567 should be separated as 1, 5, 6 and 7. 8 | 9 | ## Digit Recognition 10 | The digit recognition part is done by using a trained Convolutional Neural Network. Details about training and dataset can be found in my repository https://github.com/SparshaSaha/Neural-Nets/blob/master/Coursera%20Handwritten%20digits%20Recognition/Coursera_digit_recog_using_CNN.ipynb . 11 | This trained network is used to predict each digit and then ultimately predict the number. 12 | 13 | ## Segmentation API for each number 14 | Segmentation_utilities.py is the utility API for Image Segmentation 15 | 16 | ## Requirements 17 | Python3 18 | 19 | TensorFlow 20 | 21 | TFlearn 22 | 23 | PIL 24 | 25 | Scipy 26 | 27 | Numpy 28 | 29 | Matplotlib 30 | 31 | Jupyter-Notebook 32 | 33 | ## Running the project 34 | The project can be run by using the CNN Classifier.ipnb file and providing the name of the image file which contains the image of the number to be classified. 35 | -------------------------------------------------------------------------------- /Untitled.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stdout", 10 | "output_type": "stream", 11 | "text": [ 12 | "2\n" 13 | ] 14 | } 15 | ], 16 | "source": [ 17 | "import cv2\n", 18 | "\n", 19 | "img = cv2.imread('7.jpg')\n", 20 | "mser = cv2.MSER_create()\n", 21 | "\n", 22 | "#Resize the image so that MSER can work better\n", 23 | "img = cv2.resize(img, (img.shape[1]*2, img.shape[0]*2))\n", 24 | "\n", 25 | "gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n", 26 | "vis = img.copy()\n", 27 | "\n", 28 | "regions = mser.detectRegions(gray)\n", 29 | "hulls = [cv2.convexHull(p.reshape(-1, 1, 2)) for p in regions[0]]\n", 30 | "print(len(regions))\n", 31 | "cv2.polylines(vis, hulls, 1, (0,255,0)) \n", 32 | "\n", 33 | "cv2.namedWindow('img', 0)\n", 34 | "cv2.imshow('img', vis)\n", 35 | "while(cv2.waitKey()!=ord('q')):\n", 36 | " continue\n", 37 | "cv2.destroyAllWindows()" 38 | ] 39 | }, 40 | { 41 | "cell_type": "code", 42 | "execution_count": 3, 43 | "metadata": {}, 44 | "outputs": [], 45 | "source": [ 46 | "import numpy as np\n", 47 | "import cv2\n", 48 | "from matplotlib import pyplot as plt\n", 49 | "img = cv2.imread('temp0.jpg')\n", 50 | "gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)\n", 51 | "ret, thresh = cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)\n", 52 | "\n", 53 | "# noise removal\n", 54 | "kernel = np.ones((3,3),np.uint8)\n", 55 | "opening = cv2.morphologyEx(thresh,cv2.MORPH_OPEN,kernel, iterations = 2)\n", 56 | "# sure background area\n", 57 | "sure_bg = cv2.dilate(opening,kernel,iterations=3)\n", 58 | "# Finding sure foreground area\n", 59 | "dist_transform = cv2.distanceTransform(opening,cv2.DIST_L2,5)\n", 60 | "ret, sure_fg = cv2.threshold(dist_transform,0.7*dist_transform.max(),255,0)\n", 61 | "# Finding unknown region\n", 62 | "sure_fg = np.uint8(sure_fg)\n", 63 | "unknown = cv2.subtract(sure_bg,sure_fg)\n", 64 | "\n", 65 | "# Marker labelling\n", 66 | "ret, markers = cv2.connectedComponents(sure_fg)\n", 67 | "# Add one to all labels so that sure background is not 0, but 1\n", 68 | "markers = markers+1\n", 69 | "# Now, mark the region of unknown with zero\n", 70 | "markers[unknown==255] = 0\n", 71 | "\n", 72 | "markers = cv2.watershed(img,markers)\n", 73 | "img[markers == -1] = [255,0,0]\n", 74 | "\n", 75 | "cv2.namedWindow('img', 0)\n", 76 | "cv2.imshow('img', img)\n", 77 | "\n", 78 | "while(cv2.waitKey()!=ord('q')):\n", 79 | " continue\n", 80 | "cv2.destroyAllWindows()" 81 | ] 82 | }, 83 | { 84 | "cell_type": "code", 85 | "execution_count": null, 86 | "metadata": {}, 87 | "outputs": [], 88 | "source": [] 89 | } 90 | ], 91 | "metadata": { 92 | "kernelspec": { 93 | "display_name": "Python 3", 94 | "language": "python", 95 | "name": "python3" 96 | }, 97 | "language_info": { 98 | "codemirror_mode": { 99 | "name": "ipython", 100 | "version": 3 101 | }, 102 | "file_extension": ".py", 103 | "mimetype": "text/x-python", 104 | "name": "python", 105 | "nbconvert_exporter": "python", 106 | "pygments_lexer": "ipython3", 107 | "version": "3.5.2" 108 | } 109 | }, 110 | "nbformat": 4, 111 | "nbformat_minor": 2 112 | } 113 | -------------------------------------------------------------------------------- /WordSegmenterUtilities.py: -------------------------------------------------------------------------------- 1 | 2 | # coding: utf-8 3 | 4 | # In[1]: 5 | 6 | 7 | import scipy.io 8 | import numpy as np 9 | import matplotlib.pyplot as pyplot 10 | from PIL import Image 11 | import matplotlib.cm as cm 12 | from pprint import pprint 13 | import scipy.misc 14 | import PIL 15 | import KMeansUtilities as km 16 | 17 | 18 | # In[2]: 19 | 20 | 21 | def is_background(mat,colno): 22 | row,col=mat.shape 23 | for i in range(0,row): 24 | if mat[i][colno]<0.9: 25 | return False 26 | return True 27 | 28 | 29 | # In[3]: 30 | 31 | 32 | def get_next_nonbackground(mat,colno): 33 | row,col=mat.shape 34 | for i in range(colno+1,col): 35 | if is_background(mat,i)==False: 36 | return i 37 | return col-1 38 | 39 | 40 | # In[17]: 41 | 42 | 43 | def get_threshold(mat): 44 | diff_mat=[] 45 | row,col=mat.shape 46 | i=0 47 | while ithreshold: 68 | divs.append(i) 69 | divs.append(next_bac) 70 | i=next_bac 71 | divs.append(col-1) 72 | return divs 73 | 74 | 75 | 76 | # In[35]: 77 | def crop_line(mat): 78 | row,col=mat.shape 79 | newimg=[] 80 | front=0 81 | for i in range(col): 82 | if is_background(mat,i)==False: 83 | front=i-2 84 | break 85 | 86 | newimg=mat[:,front-1:] 87 | return newimg 88 | 89 | 90 | 91 | def main(filename): 92 | img=scipy.misc.imread(filename) 93 | img=img/255.0 94 | img=crop_line(img) 95 | g=get_threshold(img) 96 | 97 | f=km.get_clusters(g,2) 98 | 99 | mini=999999 100 | x=[] 101 | if f[1][0][0]>f[0][0][0]: 102 | x=f[1] 103 | else: 104 | x=f[0] 105 | 106 | for i in x: 107 | if i[0] 0: 117 | words.append(img[:,d[i]:d[i+1]+2]) 118 | 119 | 120 | return words 121 | -------------------------------------------------------------------------------- /WordSegmenterUtilities.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/WordSegmenterUtilities.pyc -------------------------------------------------------------------------------- /Word_Segmenter.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import scipy.io\n", 10 | "import numpy as np\n", 11 | "import matplotlib.pyplot as pyplot\n", 12 | "from PIL import Image\n", 13 | "import matplotlib.cm as cm\n", 14 | "from pprint import pprint\n", 15 | "import scipy.misc\n", 16 | "import PIL\n", 17 | "import KMeansUtilities as km" 18 | ] 19 | }, 20 | { 21 | "cell_type": "code", 22 | "execution_count": 2, 23 | "metadata": {}, 24 | "outputs": [], 25 | "source": [ 26 | "def is_background(mat,colno):\n", 27 | " row,col=mat.shape\n", 28 | " for i in range(0,row):\n", 29 | " if mat[i][colno]<0.9:\n", 30 | " return False\n", 31 | " return True" 32 | ] 33 | }, 34 | { 35 | "cell_type": "code", 36 | "execution_count": 3, 37 | "metadata": {}, 38 | "outputs": [], 39 | "source": [ 40 | "def get_next_nonbackground(mat,colno):\n", 41 | " row,col=mat.shape\n", 42 | " for i in range(colno+1,col):\n", 43 | " if is_background(mat,i)==False:\n", 44 | " return i\n", 45 | " return col-1\n", 46 | " " 47 | ] 48 | }, 49 | { 50 | "cell_type": "code", 51 | "execution_count": 4, 52 | "metadata": {}, 53 | "outputs": [], 54 | "source": [ 55 | "def get_threshold(mat):\n", 56 | " diff_mat=[]\n", 57 | " row,col=mat.shape\n", 58 | " i=0\n", 59 | " while ithreshold:\n", 83 | " divs.append(i)\n", 84 | " divs.append(next_bac)\n", 85 | " i=next_bac\n", 86 | " divs.append(col-1)\n", 87 | " return divs\n", 88 | "\n" 89 | ] 90 | }, 91 | { 92 | "cell_type": "code", 93 | "execution_count": 6, 94 | "metadata": {}, 95 | "outputs": [ 96 | { 97 | "name": "stderr", 98 | "output_type": "stream", 99 | "text": [ 100 | "/usr/local/lib/python3.5/dist-packages/ipykernel_launcher.py:2: DeprecationWarning: `imread` is deprecated!\n", 101 | "`imread` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.\n", 102 | "Use ``imageio.imread`` instead.\n", 103 | " \n" 104 | ] 105 | }, 106 | { 107 | "data": { 108 | "image/png": "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\n", 109 | "text/plain": [ 110 | "
" 111 | ] 112 | }, 113 | "metadata": {}, 114 | "output_type": "display_data" 115 | }, 116 | { 117 | "data": { 118 | "image/png": "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\n", 119 | "text/plain": [ 120 | "
" 121 | ] 122 | }, 123 | "metadata": {}, 124 | "output_type": "display_data" 125 | }, 126 | { 127 | "data": { 128 | "image/png": "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\n", 129 | "text/plain": [ 130 | "
" 131 | ] 132 | }, 133 | "metadata": {}, 134 | "output_type": "display_data" 135 | }, 136 | { 137 | "data": { 138 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAABiCAYAAABAmyhhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJztnXvcZVP9x9/LGKMhxjRiYoRmIiE0bokYI0MyFQmT1C958ZJLqB8/JSVeQiMVym0MebnkOm4hl24yuTMZ14yMuxLdo9bvj3M+e3/POuvsOc/znOc8x+P7eb3mNc/Ze+291/7utdf+fK8rxBhxOBwOxxsfiw11BxwOh8PRGfiE7nA4HMMEPqE7HA7HMIFP6A6HwzFM4BO6w+FwDBP4hO5wOBzDBD6hOxwOxzDBgCb0EMK0EMLDIYTHQgiHdapTDofD4eg7Qn8Ti0III4BHgG2AhcAdwG4xxgc71z2Hw+FwtIvFB3DsRsBjMcbfA4QQLgSmAy0n9JEjR8ZRo0bxt7/9reVJQwgAdCqDVeez50yvMW7cuKLNO9/5zo5ctxv473//C5T38dJLLxX7Xn31VQD+9a9/AfDvf/8baJTHYovVFLSRI0cCsMQSSzT8DzBmzBgAlllmmc7fwACQPkuLf/zjHwC88sorAPzxj38s9qm92giSAcCIESOA8t6XXXbZYt/SSy894D7n+l11PwO9Xjre7TX+/ve/A+V40f/abtu//vrrQCmfUaNGFW0kF8nsrW99a1M/0uvn3s30mjmZtSOrTrX561//CsBf/vKXYpvGk94/ycX2Ve/Q6NGjARg7diwAyy23XNHmP//5D1DKMwdd45577nkpxrh8y4Z1DGRCXwl4yvxeCGxcdcCoUaNYe+21mTt3busOLV7rkhWOBJZCExKUN65t+m0H3T//+U+gfHk1yU2fPr1oc+aZZ7bsW6sXRNeC6oczEOQGnwaZrj9r1qxi309/+lMAFixYAMDvf/97AN7ylrcUbTToVl55ZQBWWWWVhv8BdtxxRwC23nrrhusPdOKxzzd9drk2gq772muvAeV4scfff//9AFx77bUA/PjHPy7a6Nnfe++9Dce8/e1vL9ropfvIRz4CwA477FDs+8AHPtDQn7TPtt+pjNRn2490X7p9IEjPqY+7fSfuvPNOAH72s58BcMMNNwClfKAcJ88//zxQftwnTZpUtNl449qrr3dJ48X2Q++xnpm9V+3TWNA17buv46pkpUlS56mSZ04e6Xluu+02AH75y18W+/SeiRT86U9/augXlO/UuuuuC8CMGTMA2HnnnYs2IhyWMKTQNUaPHv1ky0YGAzG57AxMizHuVf+9B7BxjPGLSbu9gb0BFl988fdPnDiRp54qvwNVbF3QQ0m/aFaAeih6SFXn0XF6Gb/2ta8VbQ477LCGa1j5aNtgTdoW6b3qY7TkkksWbb7+9a8DcPzxxwONk4s+VpLLRhttBMDLL79ctHniiSeAcmAJdtJ/xzveAcAjjzwCDM6E3k6bVtcVowQ46qijAPj+978PlJOBnax1vCZmTU7XXHNN0UbykOzE0qD8wF1wwQVAycAs0o9N7sNvP0S2TScZuqD+a+wcfPDBxb7zzjsPgD//+c8Nx6y99trF3yuuuCJQsvCHHnoIKEkClONNsraTvchFqt1YuUqO6QfSalIal1WyasX0LVoRCIAHHngAgEMPPRSAG2+8MXtegPe///0AjB8/Hmicy3QeXf/FF18EGq0B9913H1BqM7o/22e9/yGEu2KMk5s6kWAgTtGngQnm98r1bQ2IMZ4eY5wcY5ycDmKHw+FwdA4DmdDvACaFEFYLISwB7ArM6Uy3HA6Hw9FX9JsyxxhfDyF8EbgeGAGcHWP8XTvHWtVE6kZqO7OmgdTEorbW9JGaWqRKW5U8tcvp99SpU4s2Ukt1PmuDy6loUJpH0j4NBDqPVGH19aMf/WjR5uqrr244ZvLkUiP79re/DcCUKVMa2lg1VyqebM6nnnoqAGeffXbRxqqInUA76nKV7VyQ/8DaJH/1q18B5fOVqeCiiy4q2myxxRaL7OPPf/5zAPbee2+gNDdBaZd/3/veB8BvfvMboFFOenap2axKQx0MU0tq+tljjz2ARvOS5DhhQk3ZvvLKKwFYf/31F3l+6wvbddddgdJn88ILLxT7Nt98cwCuuuoqoLQvy0wDrZ3NuXdOskqDAqD1+5cbU3JuWqe5TGqaf3TctttuW7SRuU1zg/puTWqa4w444AAAzjnnHKA0nQKsscYaQDmGZObKmZnaxYBsIDHGa4FrB3IOh8PhcHQG/XaK9gejR4+OkyZNYv78+cW2M844A4CVVloJKFmVZfEKhRLj0BfRsk2xITFstbXsWc5PefS33HJLAObMKS1FqSMrx5yqnLOdilIQc5IGs/vuuwMlO7BQNMbll1/e1A+xVf1vnaopHn/8caB0oEIZbvXwww8DA3eK9oWh2zZpZNH5558PwGc+85mm4yWz2bNnAzBt2rSijRiPwvLEAO0z1PE333xz0/FqLw3u6KOPBuCrX/1qn+61nZC1TkGOTysrQeNd0V2KxrD9EvPUfajvlj2LZW6//fZAY9ij2n/pS18CYObMmUDe6V0VwZJGyfSFoVdhvfXWK/6Wo1IQi1a0i71+GsprmbU0aslot912Axq1RR2vwIPbb7+96byS3ciRIwfdKepwOByOHkJXGfqSSy4ZJ0yYwB/+8Idim2xKVYzP2qagtL1Zu7liOfVF09fSHrvpppsC8OCDtdwnxZZ+8IMfLNpIHmIDOaag69sEnMGCQhNlE7f3I21GtmMbP67Qu6WWWgrI229lO3zb297WsN0y0oULFwKlnX2gDL0qZCxlgvYa2ifZyy5rGZXYnWy0Co+1mpxQlSCksSNt5sMf/nCxT9qd5KmYdYXyQanVVN1rN8aQrq/wOsWWWy1t9dVXB+B3v6u5v3LsW9vSOHArV8lB17r77ruLfTqXNO3HHnus4RgLMftcOGhV3HgrVGlJP/rRjwDYZ599mvbpGpdccgnQmIsg5EKJW0G+hTXXXLPYlvr9TjrpJAAOOuigYpve4zFjxjhDdzgcjjcTuhoYPmLECMaMGdPwRUtTsfVFtV9obZN9TF/8qgwrMbCvfOUrxTYx86222gpoZOZCaqfLZap1A/Kyi0XkEqb2339/oJGZC5JNqoHZBJKUmae2Tuj8PbeTip1jtOqbfCt6ltb2LayzzjpAKTNrV5UNPWV7Vr66Z11zrbXWKvaJoUtzU8KI1TrF0HNsN73XwYTGkLQswWp5SopRFugKK6wA5Md96texDFvPYZtttgHgySfLxEZpgsqoVELSe9/73qKN5oSqqI52/Fspcm10b9/97neBRi1c96F73GyzzYBGmUkOqVXAPmeNU81DiiKymcaymeu+lBBnNYaqOS4HZ+gOh8MxTOATusPhcAwTdNXkMnbsWGbMmFGE6VhIXcmpSGkokhxJVk2WM0VqoJwJP/nJT4o2Cgc64ogjGo6x5p1WRZOguajQYNbfkBNUKr1UQBsate+++wLNVd+guRaN+i7HlEXqoLNJFELqmO4kcuFnKXRvemb635rv5KSSyaPKeZY6v22YncaQ+mXHq5zMUqk1dp599tmijZKO0mdQVV1wMMaS+qQqnGlNJCjNdTK16J5zz1uySmvD2HNLHjZZR2YDmSo0pqsSyHJhna0StnJ9TE2FNolJSU9KGLPvhMxCchbrHnOFAFPY7ek8omew3XbbFdtuueWWhjaSjwqmQd4sXAVn6A6HwzFM0FWGvvzyy7PXXns1hIyJGaWVxuzXW8xLjCt1kkLJqtRWDgaFC0HJnGxpT6h2fNpU3Vw1tMHC9ddfD5RffX295dCFZvZQFQL3zDPPAGS1o5RxDKbDrp0KeTmIlUkr073b55PWoNZztVqNGHYaamYdfGKgGqdWE0zrqGuf3d6f0M6qMNmBQhUQbTq+kN6PSmVY1ppqv0LOkZwrW51W85TWW+UAzZX3aDVOcqWYU1iGLg1B1xcrh3LsKNFRbaxWIzlILrp3+/7peUpG0oA0B9njdG5dS85SKJ2y7cIZusPhcAwTdJWhL7bYYk0JHfoCpwzFsptWX3L7NdZXWrZNFZqyUOB+mhBQFZqXS36oQqtkklwBr9TeZ5MxlGov6HybbLJJy2tXlSBIQxQtUpuolX1qX88xoJSJpgwXqu2e7aRr61wTJ04ESp+CZejqq8L0JNfcIhipzdomyehaYqt2tRrdv8aknqF9LjquapWn1B48GMxcCVa659T+D+WYEVMXM7daq1hr6nPK9VlaQNVY1GIYtgBf+p5JLnZs6TmmKyjZ56txmr7jtg/qo+RgmXUubBryoadqY8dgCmkquh+bWJT2X+e59dZbizaqy94unKE7HA7HMMEiJ/QQwtkhhBdCCPPMtrEhhBtDCI/W/+8bjXU4HA5Hx9GOyeUc4AfAuWbbYcBNMcbjQgiH1X//b7sXtU6MVqFl1uGS1kpPM0YtZGqRo8M6EaWuSw0bjFCxdE3TXDhm6tyReqp6Gvb49LfUVShVNanC9hqpmis5W+eQ5JnWPLfZpLkwx/RaqerYX7NKXyDHtup3Q2k2UOU/wZrscuYgaJSLIJOJaqBDaeqRGUaV+qzJoJ1aI91wrOt5yLF26aWXNl1by8O146BMzRDW2anQxNSZb/+WQ1BtrZz0TuhdyNVHSc0o1oyZIpWvnSv0DBXeap2iQmous9dKTSS5vqa1h3SMMnOhHDPW9ASNIZ99xSIZeozxF0B6x9OB2fW/ZwMf63cPHA6Hw9ER9NcpukKMUZkUzwEr9OVgy4ZSNpNbrbudMDBVcNNqO2L4n/vc54o2chIJg5kYlDL0XGJCyrCtU1T9lyNLMssx5lxlOjFIXUMsIhfaKIYtFmKvkTpF09WeLMSucvs6LetjjjkGaGTPkpn6rKp1qtkBrSvjia1ZnHDCCUC5mDY091+O9nZWlrGaWVUiXacgLUS1zuVsswxQ1//mN78JwJFHHgk0Oho1LlLtxmo5qk9vnamC2K6S5XIajPrRqeqTqfZuNUSFceaYucIVFebbKlEJyucpjVbM314vvR/rfNe+dPF6m6RmE97awYCdorF2Vy0DiUMIe4cQ7gwh3Kn4T4fD4XB0Hv1l6M+HEMbHGJ8NIYwHmjMW6ogxng6cDjB58uQI7TG4qipp+vrZNmLmqoGt9flsGrvad6MWdVWyTLpPX2ibBJVblQnKGugWqoeuFXbsNn3tleZsbYGy56k6oRitVnKCZhnlwhZT+3iavg3NJQgGCqVmq141lGtminn94Ac/ABqZpDQ2MTGNKctazz235i4So7TJN3pWWnnGykpotTaqHa+t1qftJNRvaXmnnXYa0FiBVFUWVXdfIZd77rln0UbVJiVHaZJW9jq32KqV+Yknngg0l5TI+XPSvluNKtWuqrSbdExaeYuhqwKiJZpPP/00ULJtjVdViIRy7Ekry2ln6n863q3lQb6rlOiqTABUh0Tm0N9RNQfQE98TuLKircPhcDi6gEWuWBRCuADYEhgHPA98HbgCuBhYBXgS2CXG2GyQSjB58uRoC89YtLOWoP6XDc7WoNaqMmKiqiOuldthcG3mKapWq0lrcavtlClTijZaeV5Q6vAnP/nJYpuiOe66666ma6TRGDmIIYgRiNW85z3vKdooMuLd7353w7E5pp7eq2UXutdOyV73ZZmgooSOO+44oCzMZplgWloiV/c+xU477VT8ffDBBwOw4YYbAuWztCwtfadyfpQUVeOl01AteSjZ+jXXXAM0l9eAfAQQ5P0Rq666KtBYFE/asmRclfqf1revSriqSlZLtaScXA844ACgLBOSw4033gjA1KlTi21pBEurKKAcrFy32GILoNSm0/IJUCZBjRs3rq0Vixap/8YYd2uxa+sW2x0Oh8MxBPBMUYfD4Rgm6GotlxxaLfxqE4ukJqcq3nnnnVf8rdCy5ZdfHoBPf/rTTddKTS79WXR2UahS8YTUXJEubJ2DnFda2BrKyomnn3460Jh0pOu/613vAkr11i5HduyxxwKlQ0uYN69ICi4cWVdddRVQqs9WdUzvOSeDTpu5bIiYoOXhbrrpJqBU320/JIe0to1NktHfctQp+QZKU4uWEktr41u0c886bjBNLjJ9aXzddtttxT6ZqRRamFtcXWYUhXZqQWwbUpeGtcpUAWW4sMJhZVqw77jewdTEYvvRKhTRyr4vlS532WUXoHEe0bPXOQ8//HCgcbk8mfnSMWgT8mSOkQNWsElEaW2aNCnRbmsXztAdDodjmGCRTtFOQk5Re00xgtShYL/+6T4tQGvDoBRutN9++wGlY6yq6ttgMPSUaen6uUSNlKnY1UnEksWupHlY5iO23E5avZiBTVFXiJrC+7SSkw0hE3v4whe+AOQdSK3u2far08xTzqLPfvazxbZf/OIXQCmz9ddfH2jUQCZNmgQ0L75rw0PFWsXO7Moyko3OrfBFu1B3X7SRdpx3/YXGlZ7HXnvtBZQOUCjve/Lkmr/te9/7HgAbbLBB0SatGKjn/etf/7poo4XF77333qZ+fPzjHwdg5syZQMn4rcM+p3FBo2M9TfnPjftW+6pYrx3TcpRKmxDrtkmJSlTT+6eSIlbDlsznz58PwKxZswC4//77iza//e1vgTKsVPdq+6eAhWWXXbYtp6gzdIfD4RgmGBKGbtGKJefqU+uLPnt2rYzM/vvvX7TRF1TMNpfqnta+Tgs0dQJpqnBu7cuUIeiYzTffvNimVUvSutl21Rmxdh1v2Uyre8vZG8VCFK5o62Wn4YHyVaQFvSxyIahVrKo/OPDAA4GSUVqocNcVV1wB5GVRpZ1pfOg+bJKNfAmC2OfFF19cbEvDFFslGtk2gwH1X7JSKK9lq/IFiG3n3g3Zg1utU2uP23nnnYFGX4/eAYUWX3jhhUB+rQEleFXV769KDGwV/myT3FKZ27lGz1fajFi3PUbntj4AaJSHZKTrykeRCzu2YaTQOCaVdLTMMss4Q3c4HI43E3xCdzgcjmGCITG55JZjk2qfc45IRZTqttpqqwGNNQ9Ui0KZb+lCwfY8UtUGwykqpOfOOXfSfm2//fbFNtWVTpf/sjUl5FyS6aTKyVQVFqfnIROWdSKmmZUyY0yfPr3p3Km5qcqckDOptdNGIYS6fi6Lce7cuUDpuLSQuqx7Vh9z9a6lvj/66KPFPhu+BuXzPf7444ttcqxpDEh2uczKqgxpob8hkddddx0Au+1Wyw1USJ499o477gBgjTXWAPLPopWJI/d8ND51PijHha6rukuf+tSnijbpWgc6txyGab8HC3oeepdk0rPBCDI7qmaQxoCt2Kmxt9122wGlqcXKV/XhU5OLdcCqNlUIwU0uDofD8WbCkCQWWceYmGfKKHPhhkqg0ddb9U2g/NqnC7daVpSyucFg5q1QVWVQDDfnaJR81FebACPGIlm1Cv2C6uqPeh52NZW037qGGEMuDKxqIek0qcsyLyFlq7k2ChPM1V6Rk1gVKatYr/qoe8/1WcerKh+UDF2LeIuFS3OBsn6Qxp7GXc4hnSYmVbHQviQqQRmeaMcMlJUmoXzmKTO3Dr9WYzencSjcTwltUK5VIC3orLPOAhpDTtPnmVuwvNOO9dz59DzEto866qiG/6G5kmI72pXuw1oV9C4Jen9y475dOEN3OByOYYIhT/1v9XWzDF1hdbLtin3b1YhshUDIhwum4WODaZNLGXGOVaSsxNodBfVRbW3YYroOYxVTaAdibpaRpcxVJQgsg0vZlPpl7y9l+rm+Vj0Psdwbbrhhkf1P061zSO379nc6Pqzmo6qTShgRbDq9ktzEUnXvudC5dlYuamec6jnZa8gPk0IlIyC/UlOKVow4x9wlqzXXXLPY9vjjjze0kY/D1gGXdlVVNz/VqgYKyTWnncmGrv7YVbz0zNKVhuw7L7YtNq8+23lNf6eMXMlv/YEzdIfD4RgmWCRDDyFMAM6ltm5oBE6PMZ4cQhgLXASsCiygVhP95VbnsbBfxFZfOZvur9R01T8XC1A0gYWYYxXzGMziXOk1Wv2G5qibXFSG2K++9DbKRWxM/a8qc1AV3SL2kKvnnLbR87EsKV1LNNdGqJJDyspsgpP2pWulWr+IElUks5w2kLK8dlZSsuNVbKrVeWwfq6J+JNdO2YVzDF2aQlqwytYhb8X+q96J3DqbaYkLMW7bXkiLfNn2aX+qosMGCj2PXJkRlYbIRVGlsqlawyGNtpM/AVqvRpRbBatdtMPQXwcOiTGuBWwC7BdCWAs4DLgpxjgJuKn+2+FwOBxDhEVO6DHGZ2OMd9f//gswH1gJmA7MrjebDXxssDrpcDgcjkWjT07REMKqwPrAXGCFGOOz9V3PUTPJtAWreqZqsdQQq+qcdNJJDccrRNE6XlQDIg3dsypomhgxUCdiFapU6FaV9dZdd93ib6nF6ZJcqtAGsM8++zTsszJL763K1KG+SvXMtZUcpS5bWaZheblFvIWc6adV0lOuWmNaP7wKnXJ6236lfayq/V7lhM+ZajoNPTONhZxZJpVRfwMGUudu1fEa01ULwXdqMfF2YE2N6f1rnOeSqFTBVO+qfefS5yrZ26X5UlOc2qjmTX/QtlM0hLA0cClwUIzxVbsv1nqfHZkhhL1DCHeGEO5MV7d2OBwOR+fQ1mcwhDCS2mR+fozxsvrm50MI42OMz4YQxgMv5I6NMZ4OnA611P/MfqD8asvxoXrmAM899xxQfkkPOeSQpuvoq6kvas6ZkaYVD0a1xfRagmWU+vqnLMSGk2200UZAuVi05KIKbTlYp1E7zraUISnRwR6T1sBW2QWLXNW7FDpPjpWlGoKes3XepRX/colFcqJWsbyU6adhobZN1QLfaRVMO97kOBVjy41FyUzXH6hzVH21x6vCn5JZck7A9B7bCQ3M7Uu32QQayUH3qpR5q2EL0tD1bvZ1TPcFuXlA40DPOZ1XLHLVIoW0jxoDtoSA5KKAhw996ENAY3mJdjRRi0Uy9FB7CmcB82OMM82uOYDqiu4JXNmnKzscDoejo2iHoW8G7AE8EELQciT/BxwHXBxC+DzwJLBLfzqQBuArTfnUU08t2ugrvcMOOwDll72qwJO+5rlQp8GsQS20sk3mrp8LnVM9ZhVPEnNQ6CaUK+noy54Li2sncUVQsoxllDpeZRZk5+/ruoftaArt9FEr6dhVhIRnnnkGKP0ptjREiqrU/7SvNolKhbrSol5Wc2kVMtvf5KF27Nq557zeeusB5VqrukfJCcp3SIkzudrtrUJwc2GyOp8taJbWBlfil6153k74aKf9DZKZLduw2WabAY1hl9A4PqrqsafQ2Ln22muBMpQUmksI7Lvvvg39gkZ/RztY5IQeY/wV0Gokbd2nqzkcDodj0OCZog6HwzFMMCS1XKyqlmavnXzyyUBjhTg5Sr785S83HJ9zamqfdail++R061QNFItWIXjt1Cmx/dhll5oF6+ijjwbgkUceARrVzssvvxyArbbaqumcUuOqTD+pCrtgwYKGe7B/q86M6pNYM0SrrMIqs0wuOy99ZnbRXd3P1KlTAbj11lubrifnuerNSG224019Tc0qubBDqbtWTdYivzKB6Tg5saF0RgqpUxCa6920MwarzCC57RtvvDFQLi8neUpOUDov9S7lzF+txrTNdFT/tfC4rd+SOrA/8YlPAI31+yWz1ERqzX/tmDj6ApkYtYwglKZemT8ks9x8onvV2LThjzI9qc+nnHIK0HjPgpaeVM10O1776gB2hu5wOBzDBD2zYpEYuZxe1vm3zTbbADBnzhygu0kHQwWxIi2qLbZlWZLkoGQju9KJHE7t1KtRfWotJmxrqIgx3XPPPUBZP1u1Liz644iF1k4/y/B1H2JsCu2y7FnYb7/9ADjyyCOBRudbGroqWG1P/REDO+aYY4p9J5xwQsNxko+YO7SuMW6ZalXyVaegKqUKh9W1rHakRZ2V8NJOSG9Os9X7K5nnFu9W0p9WndIC1dAc1qrn3On6LRb33luL8dh0002LbaqjorkmrTVl+5jOQ0o0gjKkcffddwfgggsuaDpG4a0aO6usskrLvvqKRQ6Hw/Emw5CvWCTMmjULKKsJWiaqqoppXelOJRj0InT/CofTF15ffChZjMIWL7vssmLflClTgJJh5JJtxMpOPPFEoGTmltEeeuihQBkCWMXcqsIP0+u3oxnaMZDaoeVrmTFjRtFG40H2SvX1W9/6VtFGfgKtxypoBSIoVyiS/+I73/lOsS9NXFM/bA32VivO5Oz0wmCMaWk4F198MdAoK+Hmm28GyjDZM888E8jXshcLl3ZmGalW9NGqYha6p2OPPRaADTfcsGUbIedT6Eu4YDtI13yFMtxSteSlReRCUaXNyJdgNcp11lkHgHnz5gGlfX311Vcv2syeXSuFlVuprL9whu5wOBzDBENiQ7dYuHAhUHp6xaCs51nMczDrl/ca0jVRZfcU24KyTvxdd90FNLJvMQGtLC5WI0YGZQq25Krkkh/+8IdFG0UkVEVhpPbPXKJRpyOKdD7ZY6G0nauEgcaJjcjRuFK0gZihLep2ySWXtDxeqyJJC5g2bVpD2xzE3CwrTxl6p9mnhd5xjZ2ZM8uEb1vsDcrIIFuGQlqifAMqPyEbNJRjT8zeakDf+MY3gDJyS2M6pwUIOY2l04W71P8dd9yx2Jau86nrT5w4sdgmOaT+JUVXQXPBrT322AMoZQHlmGuHobsN3eFwON5k8And4XA4hgmG3ORy7rnnArDnnrU6X1JDzjjjjKKN6p8rDMsu2DpckVYezJmb5JSSSUqmAoC77767oY1U2BVXXLFoI8fNTjvtBJTmCKsCtgoptKGnUoWlnlYt8NuNOjqXXnopANdddx0At99+e7FPTi/JMa2uB+VC0HLe2frUckqntcZzSJOHcvXdhcFIcmtlorRlrLW49VVXXQWUCVs2oUemOTnNFZIncx6UZohtt90WaDRjKGkodXxW1WJKTY6DAYWl2rpRCsp48skngTKk0CYE2bBeKJ3odpF3BSooWSi3ALzQzrvhJheHw+F4k6GrDD2E8CLwN+ClRbUnAeTfAAAFDElEQVTtMYzD+9wtvBH77X3uDt6IfYbO9PudMcblF9WoqxM6QAjhznZUh16C97l7eCP22/vcHbwR+wzd7bebXBwOh2OYwCd0h8PhGCYYigm9OTe49+F97h7eiP32PncHb8Q+Qxf73XUbusPhcDgGB25ycTgcjmGCrk3oIYRpIYSHQwiPhRAO69Z1+4oQwoQQwi0hhAdDCL8LIRxY3z42hHBjCOHR+v/LDXVfU4QQRoQQ7gkhXF3/vVoIYW5d5heFEDpfKGQACCGMCSFcEkJ4KIQwP4Swaa/LOYTwpfq4mBdCuCCEsGQvyjmEcHYI4YUQwjyzLSvbUMP36v2/P4SwQQ/1+YT6+Lg/hHB5CGGM2Xd4vc8PhxC27ZU+m32HhBBiCGFc/fegy7krE3oIYQRwCrAdsBawWwhhrW5cux94HTgkxrgWsAmwX72vhwE3xRgnATfVf/caDgTmm9/fBk6KMU4EXgY+PyS9ao2TgZ/GGNcE3ket7z0r5xDCSsABwOQY49rACGBXelPO5wDTkm2tZLsdMKn+b2/gtC71McU5NPf5RmDtGOO6wCPA4QD1d3JX4L31Y06tzzPdxjk095kQwgTgw8AfzObBl3OMcdD/AZsC15vfhwOHd+PaHej7lcA2wMPA+Pq28cDDQ923pJ8rU3tJpwBXA4FaMsPiuWcw1P+AZYEnqPtxzPaelTOwEvAUMJbaWgJXA9v2qpyBVYF5i5It8CNgt1y7oe5zsu/jwPn1vxvmEOB6YNNe6TNwCTWSsgAY1y05d8vkohdBWFjf1tMIIawKrA/MBVaIMT5b3/UcsMIQdasVvgt8BVCV/bcBf44xqkZpr8l8NeBFYFbdTHRmCGEpeljOMcangROpsa5ngVeAu+htOVu0ku0b5f38H+C6+t892+cQwnTg6RjjfcmuQe+zO0VbIISwNHApcFCM8VW7L9Y+rz0THhRC2AF4IcZ411D3pQ9YHNgAOC3GuD61khAN5pUelPNywHRqH6N3AEuRUbffCOg12S4KIYQjqJlDzx/qvlQhhDAa+D/gyKG4frcm9KeBCeb3yvVtPYkQwkhqk/n5MUat6/Z8CGF8ff944IWh6l8GmwE7hhAWABdSM7ucDIwJIaj0Ya/JfCGwMMY4t/77EmoTfC/LeSrwRIzxxRjja8Bl1GTfy3K2aCXbnn4/QwifBXYAZtQ/RNC7fX4XtQ/+ffX3cWXg7hDCinShz92a0O8AJtWjAZag5syY06Vr9wkhhACcBcyPMc40u+YAe9b/3pOabb0nEGM8PMa4coxxVWqyvTnGOAO4Bdi53qzX+vwc8FQIQXVFtwYepIflTM3UskkIYXR9nKjPPSvnBK1kOwf4TD0KYxPgFWOaGVKEEKZRMyXuGGP8u9k1B9g1hDAqhLAaNUfjb3Pn6CZijA/EGN8eY1y1/j4uBDaoj/fBl3MXHQfbU/NSPw4cMRTOizb7+UFqquj9wL31f9tTs0nfBDwK/AwYO9R9bdH/LYGr63+vTm2QPwb8BBg11P1L+roecGdd1lcAy/W6nIFvAA8B84DzgFG9KGfgAmp2/teoTSqfbyVbag70U+rv5gPUonh6pc+PUbM76138oWl/RL3PDwPb9Uqfk/0LKJ2igy5nzxR1OByOYQJ3ijocDscwgU/oDofDMUzgE7rD4XAME/iE7nA4HMMEPqE7HA7HMIFP6A6HwzFM4BO6w+FwDBP4hO5wOBzDBP8PbCne/uX8C5gAAAAASUVORK5CYII=\n", 139 | "text/plain": [ 140 | "
" 141 | ] 142 | }, 143 | "metadata": {}, 144 | "output_type": "display_data" 145 | }, 146 | { 147 | "data": { 148 | "image/png": "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\n", 149 | "text/plain": [ 150 | "
" 151 | ] 152 | }, 153 | "metadata": {}, 154 | "output_type": "display_data" 155 | } 156 | ], 157 | "source": [ 158 | "\n", 159 | "img=scipy.misc.imread('temp0.jpg')\n", 160 | "#img=img[:,:,1]\n", 161 | "img=img/255.0\n", 162 | "pyplot.imshow(img,cmap=cm.gray)\n", 163 | "pyplot.show()\n", 164 | "\n", 165 | "g=get_threshold(img)\n", 166 | "\n", 167 | "f=km.get_clusters(g,2)\n", 168 | "\n", 169 | "mini=999999\n", 170 | "for i in f[1]:\n", 171 | " if i[0] 0:\n", 178 | " words.append(img[:,d[i]:d[i+1]+2])\n", 179 | "\n", 180 | "for i in words:\n", 181 | " pyplot.imshow(i,cmap=cm.gray)\n", 182 | " pyplot.show()\n", 183 | " \n" 184 | ] 185 | }, 186 | { 187 | "cell_type": "code", 188 | "execution_count": null, 189 | "metadata": {}, 190 | "outputs": [], 191 | "source": [] 192 | }, 193 | { 194 | "cell_type": "code", 195 | "execution_count": null, 196 | "metadata": {}, 197 | "outputs": [], 198 | "source": [] 199 | } 200 | ], 201 | "metadata": { 202 | "kernelspec": { 203 | "display_name": "Python 3", 204 | "language": "python", 205 | "name": "python3" 206 | }, 207 | "language_info": { 208 | "codemirror_mode": { 209 | "name": "ipython", 210 | "version": 3 211 | }, 212 | "file_extension": ".py", 213 | "mimetype": "text/x-python", 214 | "name": "python", 215 | "nbconvert_exporter": "python", 216 | "pygments_lexer": "ipython3", 217 | "version": "3.5.2" 218 | } 219 | }, 220 | "nbformat": 4, 221 | "nbformat_minor": 2 222 | } 223 | -------------------------------------------------------------------------------- /__pycache__/Character_Segmenter_Utilities.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/__pycache__/Character_Segmenter_Utilities.cpython-35.pyc -------------------------------------------------------------------------------- /__pycache__/Contrast_Ultimate.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/__pycache__/Contrast_Ultimate.cpython-35.pyc -------------------------------------------------------------------------------- /__pycache__/KMeansUtilities.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/__pycache__/KMeansUtilities.cpython-35.pyc -------------------------------------------------------------------------------- /__pycache__/Line_Segmenter_Utilities.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/__pycache__/Line_Segmenter_Utilities.cpython-35.pyc -------------------------------------------------------------------------------- /__pycache__/WordSegmenterUtilities.cpython-35.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/__pycache__/WordSegmenterUtilities.cpython-35.pyc -------------------------------------------------------------------------------- /checkpoint: -------------------------------------------------------------------------------- 1 | model_checkpoint_path: "/home/sparsha/ProjectWork/gitprojects/Neural-Nets/Coursera Handwritten digits Recognition/cnn_model.tfl" 2 | all_model_checkpoint_paths: "/home/sparsha/ProjectWork/gitprojects/Neural-Nets/Coursera Handwritten digits Recognition/cnn_model.tfl" 3 | -------------------------------------------------------------------------------- /cnn_model.tfl.data-00000-of-00001: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/cnn_model.tfl.data-00000-of-00001 -------------------------------------------------------------------------------- /cnn_model.tfl.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/cnn_model.tfl.index -------------------------------------------------------------------------------- /cnn_model.tfl.meta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/cnn_model.tfl.meta -------------------------------------------------------------------------------- /img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/img.jpg -------------------------------------------------------------------------------- /super_contrast.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/super_contrast.jpg -------------------------------------------------------------------------------- /temp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/temp.jpg -------------------------------------------------------------------------------- /temp4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/temp4.jpg -------------------------------------------------------------------------------- /tempo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/tempo.png -------------------------------------------------------------------------------- /temps.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/temps.jpg -------------------------------------------------------------------------------- /tempt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/tempt.png -------------------------------------------------------------------------------- /tempxyz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SparshaSaha/Handwritten-Number-Recognition-With-Image-Segmentation/fc7afc2b3095c2a0bb03f3d72c164459e735c5d7/tempxyz.jpg --------------------------------------------------------------------------------