{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import cv2\n", "from matplotlib import pyplot as plt" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "img = cv2.imread('samples/rain_140_1.png')" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.imshow(img)\n", "plt.colorbar()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n", "ret, thresh = cv2.threshold(imgray, 127, 255, 0)\n", "im2, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "res = cv2.drawContours(img, contours, -1, (0,255,0), 3)" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "median = cv2.medianBlur(img,7)\n", "plt.subplot(121),plt.imshow(img),plt.title('Original')\n", "plt.xticks([]), plt.yticks([])\n", "plt.subplot(122),plt.imshow(median),plt.title('Averaging')\n", "plt.xticks([]), plt.yticks([])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAATcAAAD8CAYAAAASeuPxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJztnX+QXVWV7z+rGw0RfQbCyw86/ZK0JE6ReSX68guYeqVpfSIjgzPFOEDGUJpHpmow4oxVEzBl6StNFamakcHMk3rJtEp84YeDzAg8Sp7TgZqaCkk6jBTSoCE2iZ0mnUhD0OeESLrX+2Pv0/f07XPv3ff3OafXh9p1z9nn1743nG+vtddee4uqYhiGkTc62t0AwzCMZmDiZhhGLjFxMwwjl5i4GYaRS0zcDMPIJSZuhmHkkqaIm4hcLSI/E5EjInJ7M55hGIZRDmn0ODcR6QQOAx8BjgMDwI2q+kJDH2QYhlGGZlhuq4Ejqjqkqr8FHgCua8JzDMMwSnJeE+7ZBQzH9o8Da4pPEpFNwCa/+1+a0I5Msnx5Yfvw4fa1w8glr6rqf6z14o9+6AIde2086Nxnnjv7hKpeXeuzGkEzxC0IVd0J7AQQEcsBA/b2T69b19v6dhi55Vg9F4+9Ns7BJ/5T0LmdC1+6uNxxEekGdgPzAQV2qurdIvIV4Bbgl/7UL6rq4/6aO4CNwDjwOVV9otwzmuGWjgDdsf1Fvs6oQJKQJQmeYbQDBSYC/wvgHPAFVb0MWAvcKiKX+WN3qerlvkTCdhlwA7ACuBr4pu/fL0kzLLcBYJmILMWJ2g3ATU14Tu4wITPSjKK8pWFuacV7qZ4ATvjtX4vIi7gurVJcBzygqmeBl0XkCK5//+lSFzRc3FT1nIh8FngC6AS+paqDjX7OTMLcVSMtBFplVSEiS4D3AweAq4DPisgG4BDOunsdJ3z7Y5cdp7wYNqfPzZuSjzfj3nklxGq7aQH0Ptr8thhGEooyHj507GIRORTb3+n72acgIu8Evg98XlV/JSL3AF/FecFfBf4G+Ewt7W1bQMEozbpe2LHLba/ogcEh2HYldB+AtXNd/Z72Nc+YwUwQLG6vqurKcieIyNtwwrZHVR8GUNWTseO7gMf8btV9+SZuKaHYzdx8C6y/E/aPOUHbus9tM9cJnmG0GgXGw8WtLCIiQB/woqp+PVa/0PfHAfwh8LzffgS4T0S+DlwCLAMOlnuGiVuKWTu3YLkBbFzlPq2/zWgXVVhulbgK+BTwExF51td9EbhRRC7HaelR4M8AVHVQRL4HvICLtN6qWj66YeKWYlb0OCFL6o/b228iZ7QWBd5qULqmqv4rIAmHSvbVq+o2YFvoM2xWkBQQiVfxZ1zY1vUWxCx+ng0fMVqFoowHljRgllubKSVscVErPjfpHmbFGU1HYTwduhWEiVsbKWd1JYmVCZjRTlyGQnYwcWsDkaVVbJWZeBnpRhhP7CZLJyZubcCsMiOLuICCiZthGDnDjXPLjrhZtDTHWCTVaDQTKkElDZjllmPM1TUaSdYsNxM3wzCCUITxDDl72WmpMQVzOY12YG6p0TT29rtc0yjf1DBahSL8VstOfpsqTNwyyOZb2t0CYybiBvFmx9kzccsYFiQw2okFFIyWUpyHmpSXahj1oiqMq1luRpOJBxRCkuvzhqWrtYeJDFlu2ZFhY5IoqADTX/BoPw8vfiWhnilCnhZcQOG8oJIGTNwyRmSxRFON53FlrPg8dTt2wapvuZJkrZrAtY4ooBBS0kA6JNYIppSlFqeUy5pFVvTA9th+3B3N+nfLIuMpGcMWgolbRqn0Ymf5xbepoNKJZSgYLafYNcuTGOTpu+SBCe0IKmnALLccYAJgtAKXOJ8O4QrBxG2GkKd+OKM9KMJbln5lpA0TNKNeVLFBvEbzCMk+KHWOWW9GfUimBvGauGWMUos0J50XUmcYoSjZstyy01IjeMBqubFvNujVqIdxOoJKGjDLLUPUM3g11OIzjFIo6ZmIMgQTN8MwgnBL+2VHMrLTUqNurM/NqA9blNlIKRYtNepBITXZByGYuGWQemcCMWEzaiVLllt2ZNiYMhVQnFCxsmmCjHpQFcstNRrPjl1ugsr9Y7BxVaG+1sipYVSLCyhkJ/2qosSKSLeIPCkiL4jIoIjc5usvEpEfichL/vNCXy8i8g0ROSIiz4nIB5r9JfLO3n43r9nuTjg8r/QsvCGYsBm149ZQCClpIKQV54AvqOplwFrgVhG5DLgd6FfVZUC/3wf4GLDMl03APQ1v9QwimlJ8nUwwsGQCcEJXq0jZYF6jVlxAoTGLMrfCaKoobqp6QlX/zW//GngR6AKuA+71p90LfMJvXwfsVsd+YI6ILKz4bY2S7O6EBfM72KsdbF9cn/Vlg3mNemhghkLTjaaq7EcRWQK8HzgAzFfVE/7QKDDfb3cBw7HLjvs6owbW9cL2xXDfaGG/EfQNJAcoTPiMUkQZCo2w3FphNAUHFETkncD3gc+r6q9ECl9AVVVENPRe/n6bcApsVKCR/WSReEVBiZA1GQwjoorFXy4WkUOx/Z2qujPpxDqNphOUIKilIvI2nLDtUdWHffXJSDn95ylfPwJ0xy5f5OumoKo7VXWlqq4MaYPROCIBiwITccxyM0qhCm9NdAQV4NXo/fallLBNMZqmPk8V19VXEyHRUgH6gBdV9euxQ48AN/vtm4EfxOo3+A7AtcAbMSU2qqTRYhO3zKLlAUsdN4w4zi1t3Di3ZhhNcUJacRXwKWCdiDzryzXAncBHROQl4MN+H+BxYAg4AuwC/jzgGUYJmiU263oL/W5xon64mWLBzZTv2SjGfX5ppVKJVhhNFfvcVPVfoWRrp7163pS8tdJ9jfYSDTHZcmz6WqB5fuGj7xr/jiGzGxuFoSANIjKafiIiz/q6L+KMpO+JyEbgGPBJf+xx4Bqc0fTvwKcrPcAyFGYo63pd1sOrn94Ke7e1uzlNI0mo1985vS461wSuHNKw1KpWGE3pGEpstJwo66HPC1vxjCFZf8nLWZ/xLI9qrjNgwq+jUKmkAbPcZjBZF7Ak4uK0Y1dhe8sxGF4DvY/CcmB/7JrifF2z4JJx0dLs5JaauM1g8tLXVM7a2nLMDYLeMA77H516bP+Y+1w7d+qkBFGgJeu/S6OxacaNTJCnFzcpCDI4BNuudJZa3yknYHHrbMsxJ3gR0bCYwSF3LpjAJZEWlzMEEzcjFyTNVbd1X8H93N0JG4YKIrZhfLo7Wjzuz4RtKg2OljYdCyjMcPLWgR4J0ooeV+LitbuzMPxl/5gLLGw55tzQUvcxpmKTVRqZoZUvcbPdvFJCHQlc34Cz5JbHjg2vgeWPFqKnSVkbhkNVOJcS4QohOy01mkarMhKaLaRJ949EKz70Y+1cV5afcq7r4XlTRc2sttI0alaQVmCWm5F5ImEeHHLW2eF5TrigEAmNtnd3wtrxQqR0/xhsXzVV/CyQkEzW+txM3IxMUDzIuFiAon6zw/OcqzkMdB9gMu06ioAOr4EvdZ/hqw/OnnL/YnfUBC6ZLImbuaVG4kuc5kBDqanSD89zn90HoLOna1o9ODf0qw/OnhSz6DOeWxv/NAo0crLKVmDiZiSStpc7aVLNuAW3dq4b3hEN2B0fKsyGE7mokStaLGzFz0jbd08TWUq/MnFrMlmdPiiNbU4SneKhH9H21n3Tz41cU6M2VOHcREdQSQPW59ZEivMcN9/SvrZUS1qtl1LtitdHkwJsGAJM0BpKWlzOEEzcmkQkbH0DsGf1BKs6O1LdSZ3USZ9VioWu3HEjHMstNaYMTdiz2q01uvwUsDj9ApL29lVLnr5LGtAMiVs6nOMcEbfYwK03Omfl2cnjeZ/p1sg3WQoomOXWJJ66rYunAIZG3NCDWI5jWq2JtLbLSAeq1uc2Iym2xn7z1hFOH5rFnJVn2T82e3IGirzMoWbMRITxlERCQzBxq4NS7mXfAJyWWQCcPjRrSjpQ/No0Clxa22WkA+tzmwFEq0dB4TOeAgRM9rUNLJmYPB7lPxpG1ohySy1DIcfs7XcCtbsTPnVlIc0nmlpn+2LouqKbhwdms2B+Bzt+3sHGVe74ih7Yc3u6rKPivM1yx40ZjLp+t5CSBswtrZLoRY+ssw/ePcIKP6tEPJ3nu/tGCpHRovzFtFGpXWltt9F60hIJDcEst0CS0qheubFryn7ScnFRDmTaBSJpkWLDiKM+oBBS0oBZbgEUv+x9A24214Gnh9mzGvrnd9Dr+9HyMJNrsRDXGmTYsSv590i70BulSYvLGUI6JDbFxLMN4vRfW9juPuA+n7qtYMll7QUu195av8vmWwpW65Zjtd3DSBeqElTSgFluZSjONgD4+n/fym+v/A6dACd9RPSo64O75P4RtuACCq1oF0zNeEizoA58BjB3N9O4YEE6hCsEE7cK3LQARldPsGB+B/3AbNxcYZ09Xaw62sHyg1On0mm2W1rsImepf6xUQnuaRdmYSlqGeYRg4laCaLjH6OoJZ50Nw32jMLhvG/vHoP/aETaMMyWtqhVtqnS8kULRqgG9WbA8DYf1ueWEtXNh1dEOLnzX1ybrorUw7xstbaU1+yVNispGJAlgNdZdqXMbHU3Ny3i6LLa5VhRhYqIjqKSBdLSihZSaf7+Y6OXbvhj69m7jvtHmtqtaosWEk4Su+LtVI7bxc0MmhqyH+DCZrFptM22WFw0saWDGiVtEpZepVJS0nnvWQ9ILFF/4pBWE/mGolUqTTIY8NxqPmAbBSUMbGopatDS1FL+cpVyj+Lz8cUqtSh5i7dRD0kuywa+9uZ/kNlW6X5YspbSLRJZ+y7pJi1kWwIyy3OLuT7k+n6QhIDB1EZJ2ErWj3IIn5QQh9GUstoBaORV50hCXpMHFaRa+PIpeliy3GSVu1TA45Abl3rSgOte0WUT9a1GJiJL1+wZcP1zxyukhhJxX7DK2QlTq6c/Ko7C0GwUmJiSoVEJEviUip0Tk+VjdV0RkRESe9eWa2LE7ROSIiPxMRD4a0t4ZKW4hHeX7x9yEk1H2Qbnzm/miR1MrRf1ruztd26IR/9HnntUTDCyZ4M4/7ZoihKHCVWkhlXZZSNWuJZrG4ETaLcxgFFAJK5X5DnB1Qv1dqnq5L48DiMhlwA3ACn/NN0Wks9IDZqS4VWJwyLl85w/PLnteq5LNd3fC8JrCfiR0+8fcJJi7O91aDQvmdzA+NEL/te5YJRe6GostjSuyp1HIkmjFH8FW0agpj1T1X4DXAh97HfCAqp5V1ZeBI8DqShcFi5uIdIrIj0XkMb+/VEQOeFPxQRF5u6+f5feP+ONLQp+RBrYcK/Rp3TfqhoKEjmdr9P+80UDiiEjMwE2AuWf1xGQ+a/cBV0ZPTjB6cmJK7mspivu1qm1/Hl5Wo0rCx4JcLCKHYmVT4BM+KyLPebf1Ql/XBQzHzjnu68pSjeV2G/BibH87zoS8FHgd2OjrNwKv+/q7/HmZYfvi8iubF+83O1IKbmqlzp4u+q91FuWGcVh/sIP1Bzu45P4Rlp9yoje8BpZ+6EuTMwBvOebSx3bsKi1E9bQ/C1ZTWsjHbxUWTPABhVdVdWWs7Ax4wD3Ae4DLgRPA39TT2qChICKyCPh9YBvwlyIiwDrgJn/KvcBXfOOu89sADwF/JyKimo3EjUove5KF06z/cQeHYN+WrVzy7W1sGHd106zIU0yu0dB9AF7p+Q7nD2+j+4ATu9mXbWUb2+h9tDltNMLJhcA18S1W1ZPRtojsAh7zuyNAd+zURb6uLKGW298CfwVM+P25wGlVPef342bipAnpj7/hz5+CiGyKTNbANrSUZkwBVC0relx2ROQaJ7nHkSUXnxkYnNv6ZvcZXn7yq3QfcMfNjTTqQkEnJKjUgogsjO3+IRBFUh8BbvBdXkuBZcDBSveraLmJyMeBU6r6jIh8sPomJ+PN1J3+GZmz6lr1vLggxacyjwvd4FChL27tXDh8AFjTAcOw6qirb/Y0TMZMoTFj2ETkfuCDuL6548CXgQ+KyOU4+/Ao8GcAqjooIt8DXgDOAbeq6nilZ4S4pVcBf+DHnJwP/AfgbmCOiJznrbO4mRiZkMdF5Dzg3cBY0Dc2phEXuCTLbXDIBRomU7FOAfOYdEPXzi1c18icUGOG0iAzRFVvTKjuK3P+Nly3WDAV3VJVvUNVF6nqEtxYk72quh54Erjen3Yz8AO//Yjfxx/fm5X+trRSTky2Xek+X7mxa3IJwfgaqSt6WjdkwtzeGUCGMufrGee2BRdcOILrU4tUtw+Y6+v/Eri9viYa5UQj6k8bedpFyvesnuDwPCaXEqx0fSMxiy7nNHYQb9OpStxU9SlV/bjfHlLV1ap6qar+saqe9fVv+v1L/fEUJC/lk2gM3PbFbhBvfBHo+JoFkWubBcsqC22cydi6pTmk2bPclloXIWkf3Bi2V27r4pL7XVfnfaPAaCyjIhZASMtMtyG/YbvbaFSgxkhoO7D0qwCi/M5GWRXx2UdCxswlPXf7Yrfw84aimFHxTCZpolHCZdZd+xANK2nAxC2Adb2FjvlWUM3LWxxB3Vjnmg5ZEA6z7tpEaDDBxG06aX6xGv1CFUcwi+eaK5UdkXRdqfZtOQbrpND/Vu3URoYxlcBgQkoCCqnqc5spL1ZoPmfosaRJJONCNrwGBvc5Ky9rs/AaKSMlVlkIqRI3ozZKCdb2xYB2TAobmLA1m9z/8ZiofEpaSJVbatRGpVlM0jA1+kwg98KW53FuRrZI6ruLR2jT3MeZRXItbJ4sRUvNLc0JpYaUlLMmZsLLaDSYlAhXCCZuDSJJRKK6Zrkr5e5bLHahi1Dnjdy7ikZJzC0NoBHuWzNcwFJDSYr3Ky3zl+eXP8/frR2YWzoDCXmJWpEGVWo69Oj5Ie6qYSSiWPqVMT03FArrirajI79YzLKUTG+kiAxlKJjlFkC1Fk4pwdi+uD0LPKctOmpWY3ZJi8sZgolbkykWlHrGnNUiCiGC1qoFb1p1f6OJZEjczC1tAq1Y7i+EWiw1Ex6jLBlyS03cmki7x5fV8pxWuq7r70zeNtJJaKQ0La6riVuTiYtFvQGFWsSqVQJXyzV7bi9cu8cmo88GExJWUoD1uTWJYlHZcsxN/z0ArDraur8pzXJNi4e11GONmiucHdJilYVglluLiK9I9cqNXS1x/5rxjL39sGNXYcbfZgwn6TrTVfkkoz1Yn5sRkWSVjA+NTK9MoB7RaLTru7ffic4frTrDl/7kDP3XTp3SvJEiNzK78Pvs2FW4v9FmrM/NSOKp28KskUgk4us2tDLqmfS8aP+S+0e48F1f4/ShWXT2dNF/bW3PSLp3KTbf4j5LTcRptBiz3Iw463rh9v/trJEF8zvoPlD5mj9adYbdnbU/sx7LrZQwbhiHi7+9jQXzO7jk/hG6D8BNC8Kfm3SsVUESozHIRFhJAxZQaAHxl7r7ANNWrIpTyP2czWDsvHYtzxdv+/4x2DAXdvvvsH8Mlj8Kg3PDZvo1UTJaiYlbi/jUlV3wdCFiulcrG81J2Qyh0xwlrXVaL9HKWtv9vs3wOwNJicsZgolbixh5eriq80PFqdQ5tQpb8cwhMDVwUGnpQMsbzTEpChaEYH1uLaTriu4p+7VOIBkPOjSapGeunetEbe3cyon/jRQ2CxykEAsopIO0vByDQ7Dj564THmDOyrMNuWe0Hmm8rhnsHyvce/9Yc56RhFmAKcTELT20U+Ai6yrqm1p+ykVLL3jbpQ0Tor6BgtCVi66GCkXS77VxlfsO+8ec9RYn/j1MjPKNkK1oaa7FrXiQaTtZ0QP910Lvo0xacBDmmpYbmgE+ijnuSinRbMRq85HIxVnRk/+pyg2PDeJNB3v7Yc/qCW5aAAsG2/P8YrbucwKxffFUV68W4d0/5srheYVO/shyGxwq3LsaCzE+qWVxm+J/KIwZTIPcUhH5loicEpHnY3UXiciPROQl/3mhrxcR+YaIHBGR50TkAyFNza24ret1LmBnTxejJ1tnJ8eFoVhYIqtncMi5d3ErqFqBi9zDuLW2/FShTyy6dyOHa7RjFmEjZTSuz+07wNVFdbcD/aq6DOj3+wAfA5b5sgm4J+QBuRW3vf1w32hhCEarLI9i9yyyouLWVNR/VUypBZOThG9FT0HgVvS4EkU0qxW0ELcyySUt1z4jnzTKLVXVfwFeK6q+DrjXb98LfCJWv1sd+4E5IrKw0jNyK27RCxsyWLZZxEUsciMjImGKBC8KDKyTCdg7Qd/AdNEojo5G9y8WzmYQf0YSJnAzhOZGS+er6gm/PQrM99tdQHyg6HFfV5bcilucpR/6UsXBp80isnjWznUlEjFw23f+aeHfaPN7Cu7zntUTbDk23cUtvj6y1IpFrdq+tnh6V5IVl/SMiPj0R5WeY2QYrSpaerGIHIqVTVU9SrXuQSW5F7d1vdC3d1vbltSLiKy2tXPd9rYr3UwhI08Ps04m2LN6er/gKzcWhG9Fz/Sc1OJhGXGShCguXEnrm1Za+6FYMKNrQv9wVBNRNSFMKeGW26uqujJWdgbc/WTkbvrPaBbEESA+An6RrytL7sUtTrM7xMtZP/GIZiRkUX/g+oMdrD849Z9izsqzjDw9PKXN8X62aD/UDS0lXNUM44g/q9Z7hGJDS9JJk4eCPALc7LdvBn4Qq9/go6ZrgTdi7mtJgsRNROaIyEMi8lMReVFErmh02LaZtHIusHKpUZE4zFl5lje7zzBn5VnWH+xg4yonfquOdrBgvvsnOX94Nl1XdE8ZMhLdo1H9apUEJIsCYwtNN5nGDQW5H3gaeK+IHBeRjcCdwEdE5CXgw34f4HFgCDgC7AL+PKSpoZbb3cAPVfV3gPcBL9LgsG2z2XxL82exCBWD84dnc/rQLE4fmjXNtex91FlyW/cVBvuGtjsugsVWaiNn5m33ql7lmAwkmcA1nlBhC4uW3qiqC1X1baq6SFX7VHVMVXtVdZmqflhVX/PnqqreqqrvUdX/rKqHQppbUdxE5N3AfwX6/IN+q6qnaXDYNs2EzrxRvJ/kBm8YZ8q4u21XFs7bvrgwKHdFj9sv169WTLPEu5LbmUZrKQ1CmzeE/GUoLAV+CXxbRH4sIn8vIhdQZ9hWRDZFkZTam189tYzYT9ouHs2fJGxJYvOlPzkzZX/05MSUnNDti91n9HLWKliNFrpoKqM0W21G88mbuJ0HfAC4R1XfD/yGggsK1Ba2VdWdUSSlmuvqZXdnZYur1LH4dnxQcJJgJonLlmPOJY361cBlURRHQRuxXF6j72XiZQCZmhUkZLLK48BxVY1m/n8IJ24nRWShqp5oRNi2VQwsmaDvYMc0Qduxa+pU2cWLKYOzqqL6/mvh8AGX8nR4HmwokWoVMTgEdEJnTxe/eesInHSBha0PFs4J6d+qxv1rpEiGPMeYAaREuEKoaLmp6igwLCLv9VW9wAs0OGzbKlYd7ZjSj5XUCb+3f6pltvzUdHex99GCsA2vKUQxK0Uzx4dGWPbQbHb8vIPf/+bsqqOfpYZgmMAYTSfQJU2LWxo6zfhmYI+IvB0Xkv00Thi/50O4x4BP+nMfB67BhW3/3Z+bGjaMu078aAWq5T4t6qnbuhgfGpmsf+W2LjbucwZnfJBqZDkdnhcTvdHSz4sEc3enH4S7zz1vxarS48YqkTQAN/ps10IyxgwhJcIVQpC4qeqzQFLf2LRXyPe/3VpnuxpK1Bm+5RgMe2EbXgNvdp9h4NAs5qw8y/lDs+k+AC9df4aHB2bDvoInPTjkBGnjKreU3dZ9sAFgrrvnwGdKu4uTouaJW2qRGDVSiEzUjGaSlokoQ5gxC8SsvxPXK+gts9GTE3DSbZ8+NItVR70lNjB78poodxN8VsHBDrYWZQhsB+hPHls1OOQsQ+YmL+dni6kYWSMtLmcIM0bcogTzmxa4Tv0FQx282X2G04dmAd69LOpXiwcZFszvmHRP48M8SolanMjqi2OiZmSOFEVCQ8iduO1NsKLiS9XdNwqD3uXcPzabtXP9DLaLpwvOih4nVJtvmb7kXTlxiq6DgqgWC6JhZBITt9ZTPB5tXS8s1a307d02WV+8HmckOgOfgXUJ9yzVQZ/UoR8X1aQBvCZsRtaJMhSyQi5nBYmmN7py+7bE4/Ho4uZbyt8rVIziQlgsbDZcw8gLMqFBJQ3kRtzW9RYmcozEpdw8Y80QmnJzpJmwGZmngYnzrSCVbmmtUcRIzNopJCZiRp4xt7RG4v1bIWlGxQns9SyVZxhGAGa51Ua1Vk9xJ/+OXWY5GUYzMcutDmpJH4qu2XyLEzjDMJpEhiy31IlbMSEuZlwIK0U/DcOoEa1q9au2kzpxqzTja4RZaIbRWvI4E29bKTWQNsoaMAyjhaiGlRSQqoBCKSxIYBjpIC1WWQiZELdSmOgZRgtJUbAghEyLm2EYrSUtwYIQTNwMwwjGxM0wjPyhpCZYEIKJm2EYwVhAwTCMfGLiZhhG3sjaZJUmboZhhKHpmYgyBBM3wzDCyY62mbgZhhGOuaWGYeQPBcwtNQwjl2RH20zcDMMIx9xSwzBySSOjpSJyFPg1MA6cU9WVInIR8CCwBDgKfFJVX6/l/qmfz80wjJTQnKX9PqSql6vqSr9/O9CvqsuAfr9fEyZuhmEE4QbxalCpg+uAe/32vcAnar2RiZthGOFMBBa4WEQOxcqmhLsp8H9F5JnY8fmqesJvjwLza22q9bkZhhFMFVbZqzFXsxS/p6ojIjIP+JGI/DR+UFVVpPYQhlluhmGE0eA+N1Ud8Z+ngH8EVgMnRWQhgP88VWtzTdwMwwjE5ZaGlEqIyAUi8q5oG/hvwPPAI8DN/rSbgR/U2lpzSw3DCKdxk1XOB/5RRMDp0H2q+kMRGQC+JyIbgWPAJ2t9gImbYRhhaOOmGVfVIeB9CfVjQEOWfjJxMwwjnAxNMx7U5yYifyEigyLyvIjcLyLni8hSETkgIkdE5EERebs/d5bfP+KPL2nmFzAMo4U0fhBv06gobiLSBXwOWKmqvwt0AjcA24G7VPVS4HVgo79kI/C6r7/Ln2cYRg6QiYmgkgZCo6XnAbNF5DzgHcAJYB3wkD8eH0kcH2H8ENArvtfQMIwMo1TW0C1GAAAF7UlEQVQziLftVBQ3Pxblr4Ff4ETtDeAZ4LSqnvOnHQe6/HYXMOyvPefPn9vYZhuG0WqEsNSrOtOvGkaIW3ohzhpbClwCXABcXe+DRWRTlJpR770Mw2gRqmElBYS4pR8GXlbVX6rqW8DDwFXAHO+mAiwCRvz2CNAN4I+/Gxgrvqmq7lTVlQEpGoZhpIWcidsvgLUi8g7fd9YLvAA8CVzvz4mPJI6PML4e2Kuakm9rGEbtZKzPreI4N1U9ICIPAf8GnAN+DOwE/g/wgIh8zdf1+Uv6gO+KyBHgNVxk1TCMHJCWSGgIQYN4VfXLwJeLqodwia7F574J/HH9TTMMI12kx+UMwTIUDMMIQzFxMwwjp2THKzVxMwwjnLSMYQvBxM0wjHBM3AzDyB2qMJ4dv9TEzTCMcMxyMwwjl5i4GYaROxRo4IrzzcbEzTCMQBTU+twMw8gbigUUDMPIKdbnZhhGLjFxMwwjf1jivGEYeUSBvE15ZBiGAZjlZhhGHrH0K8Mw8oiC2jg3wzByiWUoGIaRS6zPzTCM3KFq0VLDMHKKWW6GYeQPRcfH292IYEzcDMMIw6Y8Mgwjt2RoKEhHuxtgGEY2UEAnNKiEICJXi8jPROSIiNze6PaauBmGEYb6ySpDSgVEpBP4n8DHgMuAG0XkskY219xSwzCCaWBAYTVwRFWHAETkAeA64IVGPSAt4vb/gJ+1uxE1cDHwarsbUSNZbbu1u3YW13Pxr3n9iX/Why4OPP18ETkU29+pqjtj+13AcGz/OLCmnvYVkxZx+5mqrmx3I6pFRA5lsd2Q3bZbu9uHql7d7jZUg/W5GYbRDkaA7tj+Il/XMEzcDMNoBwPAMhFZKiJvB24AHmnkA9Lilu6sfEoqyWq7Ibttt3bnAFU9JyKfBZ4AOoFvqepgI58hmqFcMcMwjFDMLTUMI5eYuBmGkUvaLm7NTsGoBxHpFpEnReQFERkUkdt8/UUi8iMRecl/XujrRUS+4b/LcyLygTa3v1NEfiwij/n9pSJywLfvQd+Ri4jM8vtH/PElbWzzHBF5SER+KiIvisgVWfi9ReQv/P8jz4vI/SJyfhZ+7zzTVnFrRQpGnZwDvqCqlwFrgVt9+24H+lV1GdDv98F9j2W+bALuaX2Tp3Ab8GJsfztwl6peCrwObPT1G4HXff1d/rx2cTfwQ1X9HeB9uPan+vcWkS7gc8BKVf1dXAf5DWTj984vqtq2AlwBPBHbvwO4o51tqtDeHwAfwWVTLPR1C3GDkAH+F3Bj7PzJ89rQ1kU4IVgHPAYIboT8ecW/PS5idYXfPs+fJ21o87uBl4ufnfbfm8Jo+4v87/cY8NG0/955L+12S5NSMLra1JayeNfh/cABYL6qnvCHRoH5fjtN3+dvgb8CoizmucBpVT3n9+Ntm2y3P/6GP7/VLAV+CXzbu9N/LyIXkPLfW1VHgL8GfgGcwP1+z5D+3zvXtFvcMoGIvBP4PvB5Vf1V/Ji6P7+pGk8jIh8HTqnqM+1uS5WcB3wAuEdV3w/8hoILCqT2974Ql/S9FLgEuADIVKpSHmm3uDU9BaNeRORtOGHbo6oP++qTIrLQH18InPL1afk+VwF/ICJHgQdwrundwBwRiQZux9s22W5//N3AWCsb7DkOHFfVA37/IZzYpf33/jDwsqr+UlXfAh7G/Ruk/ffONe0Wt6anYNSDiAjQB7yoql+PHXoEuNlv34zri4vqN/go3lrgjZg71TJU9Q5VXaSqS3C/6V5VXQ88CVxfot3R97nen99y60hVR4FhEXmvr+rFTYGT6t8b546uFZF3+P9nonan+vfOPe3u9AOuAQ4DPwe2trs9RW37PZwL9BzwrC/X4PpH+oGXgH8GLvLnCy76+3PgJ7joWbu/wweBx/x2D3AQOAL8AzDL15/v94/44z1tbO/lwCH/m/8TcGEWfm/gfwA/BZ4HvgvMysLvnedi6VeGYeSSdrulhmEYTcHEzTCMXGLiZhhGLjFxMwwjl5i4GYaRS0zcDMPIJSZuhmHkkv8PILV1kWJCMF0AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "Z = img.reshape((-1,3))\n", "\n", "# convert to np.float32\n", "Z = np.float32(Z)\n", "\n", "# define criteria, number of clusters(K) and apply kmeans()\n", "criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)\n", "K = 20\n", "ret,label,center=cv2.kmeans(Z,K,None,criteria,10,cv2.KMEANS_RANDOM_CENTERS)\n", "\n", "# Now convert back into uint8, and make original image\n", "center = np.uint8(center)\n", "res = center[label.flatten()]\n", "res2 = res.reshape((img.shape))\n", "\n", "plt.imshow(res2)\n", "plt.colorbar()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.1" } }, "nbformat": 4, "nbformat_minor": 2 }