{ "cells": [ { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [], "source": [ "from ipfml import processing\n", "from ipfml import utils\n", "from ipfml import metrics\n", "from PIL import Image\n", "from scipy import signal\n", "from skimage import color\n", "import scipy.stats as stats\n", "import seaborn as sns\n", "import cv2\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import os\n", "\n", "from pylab import *\n", "from skimage import data, io, color\n", "from sklearn.feature_extraction.image import img_to_graph, grid_to_graph, extract_patches_2d" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "data_folder = \"../fichiersSVD_light\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Gradient pixel to pixel analysis on Synthesis Images " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Utils functions definition" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def compute_images_path(dict_data):\n", " \n", " all_images_path = []\n", " for cur_dict in dict_data:\n", " scene = cur_dict['name']\n", " prefix = cur_dict['prefix']\n", " indices = cur_dict['indices']\n", "\n", " scene_images_path = []\n", " for index in indices:\n", " path = os.path.join(data_folder, os.path.join(scene, prefix + index + \".png\"))\n", " scene_images_path.append(path)\n", " \n", " all_images_path.append(scene_images_path)\n", " \n", " return all_images_path" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "def display_sv_data(dict_data, interval, all_images_path):\n", " \n", " sv_values = []\n", " plt.figure(figsize=(25, 20))\n", " begin, end = interval\n", " \n", " for id_dict, cur_dict in enumerate(dict_data):\n", " \n", " scene_name = cur_dict['name']\n", " image_indices = cur_dict['indices']\n", " scene_sv_values = []\n", " \n", " for id_img, img_path in enumerate(all_images_path[id_dict]):\n", " img = Image.open(img_path)\n", " print(img_path)\n", " \n", " blocks = processing.divide_in_blocks(img, (200, 200))\n", " block = np.array(blocks[0])\n", " \n", " if block.ndim == 3:\n", " U, s, V = processing.get_LAB_L_SVD(block)\n", " else:\n", " U, s, V = metrics.get_SVD(block)\n", " \n", " data = s[begin:end]\n", " plt.plot(data, label=scene_name + '_' + str(image_indices[id_img]))\n", " scene_sv_values.append(data)\n", " \n", " sv_values.append(scene_sv_values)\n", "\n", " plt.legend(fontsize=18)\n", " plt.show()\n", " return sv_values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Scenes zones data" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# start 00020 - ref 00900 - step 10\n", "dict_appart = {'name': 'Appart1opt02', \n", " 'prefix': 'appartAopt_', \n", " 'indices': [\"00020\", \"00200\", \"00900\"]}\n", "\n", "# start 00050 - ref 01200 - step 10\n", "dict_cuisine = {'name': 'Cuisine01', \n", " 'prefix': 'cuisine01_', \n", " 'indices': [\"00050\", \"00400\", \"01200\"]}\n", "\n", "# start 00020 - ref 00950 - step 10\n", "dict_sdb_c = {'name': 'SdbCentre', \n", " 'prefix': 'SdB2_', \n", " 'indices': [\"00020\", \"00400\", \"00950\"]}\n", "\n", "# start 00020 - ref 00950 - step 10\n", "dict_sdb_d = {'name': 'SdbDroite', \n", " 'prefix': 'SdB2_D_', \n", " 'indices': [\"00020\", \"00400\", \"00950\"]}" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "all_dicts = [dict_appart, dict_cuisine, dict_sdb_c, dict_sdb_d]\n", "interval = (30, 200)" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [], "source": [ "images_path = compute_images_path(all_dicts)" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [], "source": [ "first_img = Image.open(images_path[0][0])" ] }, { "cell_type": "code", "execution_count": 109, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "400\n" ] }, { "data": { "text/plain": [ "(961, 10, 10, 3)" ] }, "execution_count": 109, "metadata": {}, "output_type": "execute_result" } ], "source": [ "zones = processing.divide_in_blocks(first_img, (40, 40))\n", "print(len(zones))\n", "zone_img = np.asarray(zones[10])\n", "# matrix = img_to_graph(zone_img, return_as=np.ndarray)\n", "# matrix.shape" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQsAAAD8CAYAAABgtYFHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAFURJREFUeJzt3X2wVXW9x/H3N0Cy6zXB1AgoDufsVWL5QCRad+7c0RRSE5psBBIPhDwIWmqNF2vmOtV9MG+FqfmAYWKpqFhq1o1Bc+bemeA8ceAoIHtvOBYQxjXR6o5jat/7x/5pmyPHs8/D3uthf14ze85av7X23t/FHD5nrd/6rbXM3RER6cs74i5ARNJBYSEiFVFYiEhFFBYiUhGFhYhURGEhIhWpeViY2XQz22FmRTNbXuvvF5GBsVqOszCzYUAeOAvYA7QBs919W82KEJEBqfWexalA0d13uftfgDXAjBrXICIDMLzG3zcW2F02vweYWr6CmS0CFgEMY9hH38WRtatOpA79iQPPu/sxfa1X67Dok7uvBFYCHGmjfaqdGXNFItn2uK/9TSXr1fowZC8wvmx+XGgTkYSrdVi0ATkzazCzw4BZwKM1rkFEBqCmhyHu/pqZXQasA4YBd7r71lrWICIDU/NxFu7+C3eP3L3R3f+tv+/vXnNiNcoSkT6kbgRnw6wuuq87Pe4yROpO6sICoGH5Bnav/XDcZYjUlVSGBcD4C57WIYlIDaU2LKB0SLJLhyQiNZHqsACYuHwDL69riLsMkcxLfVgAHD6tm8LqyXGXIZJpmQgLgFzzJgp3fTTuMkQyKzNhAZCb16E9DJEqyVRYQGkPY+c9p8RdhkjmZC4sABo/30nhxql9rygiFctkWADkvtjC8z+L4i5DJDMyGxYA7/l0nvwdH4u7DJFMyHRYAEQL29j57dPiLkMk9TIfFgCNX9mooeEig1QXYQGloeHP3q/AEBmougkLgAkXdrHnmo/HXYZIKtVVWACM+49f6/J2kQGou7CA0uXtxR9r4JZIf9RlWAA0XdRJ/rZT4y5DJDXqNiwAoiWtPPfw8XGXIZIKdR0WAO+duZ38D3W1qkhf6j4sAKL5HeRXTYm7DJFEU1gE0YJ29umQRKRXCosyY2Zu11kSkV4oLHpouqiT4gpdSyLSk8LiEJqu1LUkIj0pLHrRMKuLXfeeHHcZIomhsHgbE+ds1j09RQKFRR9yzZvI364b6IgoLCoQLW4jf4uGhkt9U1hUKFraSuH7ugmw1C+FRT/klrXQfd9JcZchEguFRT81zN7Cbx/8SNxliNScwmIA3v+5p9SHIXVHYTFA0dJWfvfTSXGXIVIzCotBeN9ntpG/VXsYUh8UFoMUXdpK4WadJZHs6zMszOxOM9tvZk+XtY02s/VmVgg/R4V2M7MbzaxoZl1mNrnsPc1h/YKZNVdnc+KRu6yFAz/PxV2GSFVVsmdxFzC9R9ty4Al3zwFPhHmATwG58FoE3AqlcAGuBaYCpwLXvhEwWTHq3ILu6SmZ1mdYuPt/Ay/0aJ4BrA7Tq4GZZe13e8lG4CgzGwNMA9a7+wvufgBYz1sDKPWiJa0UbtIhiWTTQPssjnP3fWH6OeC4MD0W2F223p7Q1lv7W5jZIjNrN7P2V3llgOXFJ3d5i26gI5k06A5Od3fAh6CWNz5vpbtPcfcpIxg5VB9bU00Xderp7ZI5Aw2L34fDC8LP/aF9LzC+bL1xoa239syKFrZRuFGHJJIdAw2LR4E3zmg0A4+UtV8czoqcBrwUDlfWAWeb2ajQsXl2aMu03Bd1lkSyo5JTp/cBG4APmtkeM1sAXAecZWYF4JNhHuAXwC6gCNwBLAVw9xeAbwJt4fWN0JZ5o84tUPyR+jAk/azU5ZBMR9pon2pnxl3GkMjf8TGihW1xlyHyFo/72g537/PBORrBWSPRwjZdSyKpprCoofd9ZpselSippbCosWh+By88FsVdhki/KSxiMPq8PDv1mAFJGYVFTBrnbNbl7ZIqCosYRZe26rkkkhoKi5jlmjfpyWeSCgqLBJg4ZzPF7+phzJJsCouEaLpqI//76AfjLkOkVwqLBDnm/B16VKIklsIiYaLFbXrymSSSwiKBcsta6F5zYtxliBxEYZFQDbO6dMctSRSFRYI1XdTJzm/rLIkkg8Ii4Rq/slHPVpVEUFikwPs/95RuoCOxU1ikRNPcTnZdf3rcZUgdU1ikyMSrN+h+GBIbhUXKRPM7KNylwJDaU1ikUG5eB/mVGukptaWwSKloURv7Hj4+7jKkjigsUmzMzO0ahyE1o7BIucavbKT7Op0lkepTWGRAw/IN/PmXE+MuQzJOYZERR0zfpYvPpKoUFhnSMKtL9/SUqlFYZEyueRN7Hjoh7jIkgxQWGTTus1s1NFyGnMIioyZevUF33JIhpbDIMN1xS4aSwiLjGmZ16VoSGRIKizqQm9dBcYVGesrgKCzqRNOVei6JDI7Coo4cc/4O8j+YEncZklIKizoTXdJO97/rtKr0n8KiDjV8dQPP3q+zJNI/fYaFmY03syfNbJuZbTWzL4X20Wa23swK4eeo0G5mdqOZFc2sy8wml31Wc1i/YGbN1dss6cuEC7vI36Eb6EjlKtmzeA34srtPAk4DlpnZJGA58IS754AnwjzAp4BceC0CboVSuADXAlOBU4Fr3wgYiUe0UI9KlMr1GRbuvs/dN4XpPwHbgbHADGB1WG01MDNMzwDu9pKNwFFmNgaYBqx39xfc/QCwHpg+pFsj/ZZb1qKLz6Qi/eqzMLMJwClAC3Ccu+8Li54DjgvTY4HdZW/bE9p6a+/5HYvMrN3M2l/llf6UJwOUa96ksyTSp4rDwsyOAB4CrnD3P5Yvc3cHfCgKcveV7j7F3aeMYORQfKRUILqkneINGrglvasoLMxsBKWguMfdfxKafx8OLwg/94f2vcD4srePC229tUtCNF2xke77Toq7DEmoSs6GGLAK2O7u3y1b9CjwxhmNZuCRsvaLw1mR04CXwuHKOuBsMxsVOjbPDm2SIA2zt+hBRnJIlexZfAKYC5xhZpvD6xzgOuAsMysAnwzzAL8AdgFF4A5gKYC7vwB8E2gLr2+ENkmYaH4H+VtPjbsMSRgrdTck05E22qfamXGXUbe67zuJhtlb4i5DquxxX9vh7n32cGsEp/SqYfYWPb1d3qSwkLfVNLeT/C06JBGFhVQgWtrKzntPjrsMiZnCQirSOGezBm7VOYWFVCy6pJ3CzbqWpF4pLKRfcpe1sHvth+MuQ2KgsJB+G3/B0zokqUMKCxmQ6JJ2CjfpkKSeKCxkwHKXt+gxA3VEYSGDkpvXQf5OHZLUA4WFDFr0hXbtYdQBhYUMidy8Dg3cyjiFhQyZxjmb+e2DH4m7DKkShYUMqfd/7in2PHRC3GVIFSgsZMiN++xWXa2aQQoLqYqmuZ0UbtQ4jCxRWEjV5L6ocRhZorCQqsrN0y36skJhIVUXXdqqRyVmgMJCaiJa2Mb//XJi3GXIICgspGb+bvouDQ1PMYWF1FT0hXbyt6kPI40UFlJz0ZJWnnv4+LjLkH5SWEgs3jtzO/nb1emZJgoLiU20uE2HJCmisJBYRUtaeXldQ9xlSAUUFhK7w6d1s/+RD8VdhvRBYSGJcOyMZ3Q/jIRTWEhiNM7ZTH6lOj2TSmEhiRItatNZkoRSWEjiRIvbKN5wWtxlSA8KC0mkpis2kv+hLm9PEoWFJFY0v0NXqyaIwkISLVrYxm++/vG4yxAUFpICH7j21/zup5PiLqPuKSwkFd73mW0UVk+Ou4y61mdYmNk7zazVzLaY2VYz+3pobzCzFjMrmtn9ZnZYaB8Z5oth+YSyz7omtO8ws2nV2ijJplzzJoordJYkLpXsWbwCnOHuJwEnA9PN7DTgW8AKd28CDgALwvoLgAOhfUVYDzObBMwCTgCmA7eY2bCh3BjJvqYrN9K95sS4y6hLfYaFl/w5zI4ILwfOANaG9tXAzDA9I8wTlp9pZhba17j7K+7eDRQBXXIo/dYwq0sDt2JQUZ+FmQ0zs83AfmA9sBN40d1fC6vsAcaG6bHAboCw/CXg6PL2Q7yn/LsWmVm7mbW/yiv93yKpC9HiNgo367kktVRRWLj76+5+MjCO0t5A1S4RdPeV7j7F3aeMYGS1vkYyIHdZi558VkP9Ohvi7i8CTwKnA0eZ2fCwaBywN0zvBcYDhOXvBv5Q3n6I94gMSNPcTp69X30YtVDJ2ZBjzOyoMH04cBawnVJoXBBWawYeCdOPhnnC8l+5u4f2WeFsSQOQA1qHakOkfk24sIv8Ler+qrbhfa/CGGB1OHPxDuABd3/MzLYBa8zsX4FOYFVYfxXwIzMrAi9QOgOCu281sweAbcBrwDJ3f31oN0fqVbS0dBPg987cHncpmWWlP/rJdKSN9ql2ZtxlSIrkbzuVaIl2WPvjcV/b4e59PtBFIzglU6IlrRR/rE7PalBYSOY0XdSpwKgChYVkUtNFOksy1BQWklkTLuxi1/Wnx11GZigsJNMmXr2BnffokGQoKCwk8xo/30nhbl3ePlgKC6kLuYs3sfM7urx9MBQWUjcav7yRPQ+dEHcZqaWwkLoy7rNbtYcxQAoLqTuNX95IflWfAxalB4WF1KVoQbsub+8nhYXUraa5nex7+Pi4y0gNhYXUtTEzt1O4SXfcqoTCQupe7vIWPZekAgoLEUrPJdENdN6ewkIkiJbq8va3o7AQKdN0USfP/yyKu4xEUliI9PCeT+d5eV1D3GUkjsJC5BAOn9ZN4fs6S1JOYSHSi9yyFo30LKOwEHkb0YJ2PSoxUFiI9CFa3MbOe0+Ou4zYKSxEKtA4ZzPFG+r7alWFhUiFmq7YWNcXnyksRPqhaW4nf1n/gbjLiIXCQqSfDjvrNxTu+mjcZdScwkJkAHLzOsjfUV9nSRQWIgMULWzjwM9zcZdRMwoLkUEYdW6hbsZhKCxEBila3FYXIz0VFiJDIFrQzv5HPhR3GVWlsBAZIsfOeCbTexgKC5EhFC1oz+wdtxQWIkMsWtpK/ofZG4ehsBCpgmh+B/mV2TpLorAQqZJoURvFFdm5+KzisDCzYWbWaWaPhfkGM2sxs6KZ3W9mh4X2kWG+GJZPKPuMa0L7DjObNtQbI5I0TVdm51GJ/dmz+BKwvWz+W8AKd28CDgALQvsC4EBoXxHWw8wmAbOAE4DpwC1mNmxw5YskX7SgnfwP0h8YFYWFmY0DzgV+EOYNOANYG1ZZDcwM0zPCPGH5mWH9GcAad3/F3buBIpDNbmORHqJL2un+99PjLmNQKt2zuAG4GvhrmD8aeNHdXwvze4CxYXossBsgLH8prP9m+yHeI5J5DV/dkOo7bvUZFmZ2HrDf3TtqUA9mtsjM2s2s/VVeqcVXitRM45zNqX22aiV7Fp8AzjezZ4E1lA4/vgccZWbDwzrjgL1hei8wHiAsfzfwh/L2Q7znTe6+0t2nuPuUEYzs9waJJF3u8hbyt6XvCLzPsHD3a9x9nLtPoNRB+St3/zzwJHBBWK0ZeCRMPxrmCct/5e4e2meFsyUNQA5oHbItEUmRaEn6Bm4NZpzFPwNXmVmRUp/EqtC+Cjg6tF8FLAdw963AA8A24JfAMnd/fRDfL5Jq0fwOdn4nPeMwrPRHP5mOtNE+1c6MuwyRqtp578k0ztkc2/c/7ms73L3Pc7sawSkSs8Y5m1NxebvCQiQBjp3xDN33nRR3GW9LYSGSEA2ztyR6pKfCQiRBokvaeXldQ9xlHJLCQiRhDp/WTfeaE+Mu4y0UFiIJ1DCrK3H3w1BYiCRUtKgtUU8+U1iIJFhuXkdihoYrLEQSLlrSmogHGSksRFIgWtzGrpgvb1dYiKTExDmbKf7olNi+X2EhkiJNczvJ3xpPH4bCQiRloktbYxm4pbAQSaHDp3XXvNNTYSGSUtHiNgo31+4WfQoLkRTLXdZSs4vPFBYiKRdd0l6TgVsKC5EMiJa0Vj0wFBYiGREtaWX32g9X7fMVFiIZMv6Cp6t2iz6FhUjGHDvjmao8vV1hIZJBTVduHPI9DIWFSEYdO+OZIR2HobAQybDcZS3kVw3NOAyFhUjGRQvah+RqVYWFSB1omttJ4e7Jg/oMhYVInchdvIniDQM/S6KwEKkjTVdsHHAfhsJCpM5EC9oHdNdwhYVIHcrN66BwU/9OqyosROpU7vKWfl1LYu5exXIGx8z+BOyIu44BeA/wfNxF9JNqrp2k1f0Bdz+mr5WG16KSQdjh7sl9rHQvzKw9bXWr5tpJa906DBGRiigsRKQiSQ+LlXEXMEBprFs1104q6050B6eIJEfS9yxEJCEUFiJSkcSGhZlNN7MdZlY0s+Ux13Knme03s6fL2kab2XozK4Sfo0K7mdmNoe4uM5tc9p7msH7BzJqrXPN4M3vSzLaZ2VYz+1LS6zazd5pZq5ltCTV/PbQ3mFlLqO1+MzsstI8M88WwfELZZ10T2neY2bRq1Vz2fcPMrNPMHktLzf3m7ol7AcOAncBE4DBgCzApxnr+EZgMPF3Wdj2wPEwvB74Vps8B/gsw4DSgJbSPBnaFn6PC9Kgq1jwGmBym/x7IA5OSXHf47iPC9AigJdTyADArtN8GXBqmlwK3helZwP1helL4nRkJNITfpWFV/h25CrgXeCzMJ77mfm9j3AX08g9/OrCubP4a4JqYa5rQIyx2AGPC9BhKA8gAbgdm91wPmA3cXtZ+0Ho1qP8R4Ky01A28C9gETKU02nF4z98NYB1wepgeHtaznr8v5etVqdZxwBPAGcBjoYZE1zyQV1IPQ8YCu8vm94S2JDnO3feF6eeA48J0b7XHtk1hV/cUSn+pE1132J3fDOwH1lP6C/uiu792iO9/s7aw/CXg6FrXDNwAXA38NcwfnYKa+y2pYZEqXvpTkMhz0GZ2BPAQcIW7/7F8WRLrdvfX3f1kSn+tTwWq8xCMIWJm5wH73b0j7lqqLalhsRcYXzY/LrQlye/NbAxA+Lk/tPdWe823ycxGUAqKe9z9J2mpG8DdXwSepLQLf5SZvXEdU/n3v1lbWP5u4A81rvkTwPlm9iywhtKhyPcSXvPAxH0c1Msx4HBKHWkN/K2D84SYa5rAwX0W/8nBHYXXh+lzObijsDW0jwa6KXUSjgrTo6tYrwF3Azf0aE9s3cAxwFFh+nDgf4DzgAc5uLNwaZhexsGdhQ+E6RM4uLNwFzXoLAT+ib91cKai5n5tX9wFvM0//DmUevB3Al+LuZb7gH3Aq5SOJRdQOs58AigAj7/xHyj8Z/t+qPspYErZ53wBKIbX/CrX/A+UDjG6gM3hdU6S6wZOBDpDzU8D/xLaJwKt4fsfBEaG9neG+WJYPrHss74WtmUH8Kka/Z6Uh0Uqau7PS8O9RaQiSe2zEJGEUViISEUUFiJSEYWFiFREYSEiFVFYiEhFFBYiUpH/B2c1MrqOUf1oAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.imshow(matrix)\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "thesis-venv", "language": "python", "name": "thesis-venv" }, "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.6.0" } }, "nbformat": 4, "nbformat_minor": 2 }