2020-09-15 02:15:15 -03:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/dlsaavedra/anaconda3/envs/new/lib/python3.7/site-packages/pysal/__init__.py:65: VisibleDeprecationWarning: PySAL's API will be changed on 2018-12-31. The last release made with this API is version 1.14.4. A preview of the next API version is provided in the `pysal` 2.0 prelease candidate. The API changes and a guide on how to change imports is provided at https://migrating.pysal.org\n",
" ), VisibleDeprecationWarning)\n"
]
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"from matplotlib import path\n",
"import matplotlib.patches as patches\n",
"from skimage import draw\n",
"import scipy.ndimage as ndimage\n",
"import Utils\n",
"import georasters as gr\n",
2020-10-06 18:34:28 -03:00
"import cv2\n",
"from Utils import doubleMADsfromMedian\n",
"from skimage.transform import resize"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Read Image"
2020-09-15 02:15:15 -03:00
]
},
{
"cell_type": "code",
"execution_count": 2,
2020-11-02 18:55:35 -03:00
"metadata": {
"scrolled": true
},
2020-09-15 02:15:15 -03:00
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 432x288 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2020-11-02 18:55:35 -03:00
"image/png": "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
2020-09-15 02:15:15 -03:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
2020-11-02 18:55:35 -03:00
"#path_C = \"El_Aguila/result_C.tif\"\n",
"path_RGB = \"El_Aguila_2020/RGB.tif\"\n",
"path_T = \"El_Aguila_2020/Thermo.tif\"\n",
2020-09-15 02:15:15 -03:00
"\n",
2020-11-02 18:55:35 -03:00
"GR = gr.from_file(path_RGB)\n",
2020-09-15 02:15:15 -03:00
"\n",
"plt.figure(0)\n",
"plt.figure(figsize=(16, 16))\n",
2020-10-06 18:34:28 -03:00
"plt.imshow((GR.raster[:3,:,:]).transpose((1, 2, 0))[::10,::10,:])\n",
2020-09-15 02:15:15 -03:00
"\n",
2020-09-29 03:44:54 -03:00
"HSV = Utils.rgb2hsv((GR.raster[:3,:,:]).transpose((1, 2, 0)))\n"
2020-09-15 02:15:15 -03:00
]
},
2020-10-06 18:34:28 -03:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Segmentatio Panel_Strings"
]
},
2020-09-15 02:15:15 -03:00
{
"cell_type": "code",
2020-11-02 18:55:35 -03:00
"execution_count": 9,
2020-09-15 02:15:15 -03:00
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2020-11-02 18:55:35 -03:00
"<matplotlib.image.AxesImage at 0x7fad2d780490>"
2020-09-15 02:15:15 -03:00
]
},
2020-11-02 18:55:35 -03:00
"execution_count": 9,
2020-09-15 02:15:15 -03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"<Figure size 432x288 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2020-11-02 18:55:35 -03:00
"image/png": "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
2020-09-15 02:15:15 -03:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
2020-11-02 18:55:35 -03:00
"image/png": "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
2020-09-15 02:15:15 -03:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
2020-11-02 18:55:35 -03:00
"image/png": "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
2020-09-15 02:15:15 -03:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
2020-11-02 18:55:35 -03:00
"image/png": "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
2020-09-15 02:15:15 -03:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
2020-10-06 18:34:28 -03:00
"V_thresh = 125\n",
2020-11-02 18:55:35 -03:00
"H_top = 240\n",
"H_bot = 150\n",
2020-10-06 18:34:28 -03:00
"\n",
"kernel_size = 31\n",
"H = cv2.GaussianBlur(HSV[:, :, 0],(kernel_size, kernel_size),0)\n",
"\n",
"H2 = np.ones(H.shape)\n",
"#H2 = cv2.GaussianBlur(H2,(9,9),0).astype('float32')\n",
2020-11-02 18:55:35 -03:00
"H2[H > H_top] = 0\n",
2020-10-06 18:34:28 -03:00
"#H2[H < 270] = 1\n",
2020-11-02 18:55:35 -03:00
"H2[H < H_bot] = 0\n",
2020-10-06 18:34:28 -03:00
"\n",
"V = np.zeros(HSV.shape[:2])\n",
"V = cv2.normalize(HSV[:, :, 2], V, 0, 255, cv2.NORM_MINMAX).astype(np.uint8)\n",
"V1 = (V > V_thresh).astype(np.uint8)\n",
"V1 = cv2.morphologyEx(V1, cv2.MORPH_CLOSE, np.ones((3,3), dtype=np.uint8),iterations = 5)\n",
"H2[V1 == 0] = 0\n",
"\n",
"kernel = np.ones((21, 21) , np.uint8) # note this is a vertical kernel\n",
"closing_H2 = cv2.morphologyEx(H2.astype(float), cv2.MORPH_CLOSE, kernel)\n",
"erode_H2 = cv2.morphologyEx(closing_H2.astype(float), cv2.MORPH_ERODE, kernel)\n",
"\n",
"\n",
"\n",
2020-09-15 02:15:15 -03:00
"\n",
"label_im, nb_labels = ndimage.label(erode_H2)#, structure= np.ones((2,2))) ## Label each connect region\n",
"label_areas = np.bincount(label_im.ravel())[1:]\n",
"\n",
2020-11-02 18:55:35 -03:00
"min_area = 5000\n",
2020-09-15 02:15:15 -03:00
"L = np.zeros(label_im.shape)\n",
"\n",
"for i in range(nb_labels):\n",
" if label_areas[i] > min_area:\n",
" L[label_im == (i + 1) ] = 1\n",
" \n",
" \n",
2020-10-06 18:34:28 -03:00
"label_im2, nb_labels2 = ndimage.label(L)#, structure= np.ones((2,2))) ## Label each connect region\n",
"label_areas2 = np.bincount(label_im2.ravel())[1:]\n",
2020-09-15 02:15:15 -03:00
"\n",
"\n",
"plt.figure(0)\n",
"plt.figure(figsize=(16, 16))\n",
2020-10-06 18:34:28 -03:00
"plt.imshow(H2[::5,::5])\n",
2020-09-15 02:15:15 -03:00
"\n",
"plt.figure(1)\n",
"plt.figure(figsize=(16, 16))\n",
2020-10-06 18:34:28 -03:00
"plt.imshow(erode_H2[::5,::5])\n",
"\n",
"plt.figure(2)\n",
"plt.figure(figsize=(16, 16))\n",
"plt.imshow(L)\n",
"\n",
"plt.figure(3)\n",
"plt.figure(figsize=(16, 16))\n",
"plt.imshow(label_im2==1)\n",
2020-09-15 02:15:15 -03:00
" "
]
},
{
2020-10-06 18:34:28 -03:00
"cell_type": "markdown",
2020-09-15 02:15:15 -03:00
"metadata": {},
2020-10-06 18:34:28 -03:00
"source": [
"# Save Panel_Strings coordinate"
]
2020-09-15 02:15:15 -03:00
},
{
"cell_type": "code",
2020-11-02 18:55:35 -03:00
"execution_count": 10,
2020-09-15 02:15:15 -03:00
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 432x288 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2020-11-02 18:55:35 -03:00
"image/png": "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
2020-09-15 02:15:15 -03:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
2020-10-06 18:34:28 -03:00
"L_strings = [] # {name: '001', points:(top-left, top-right, bottom-right, bottom-left) (x,y), 'panels' : }\n",
"\n",
2020-09-29 03:44:54 -03:00
"epsilon = 30\n",
"\n",
"\n",
2020-10-06 18:34:28 -03:00
"for i in range(1, nb_labels2 + 1):\n",
2020-09-15 02:15:15 -03:00
" \n",
2020-10-06 18:34:28 -03:00
" countours, hierarchy = cv2.findContours(np.uint8(label_im2 == i), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)\n",
2020-09-29 03:44:54 -03:00
" x_max = np.max(countours[0][:, 0, 0]) + epsilon\n",
" y_max = np.max(countours[0][:, 0, 1]) + epsilon\n",
" x_min = np.min(countours[0][:, 0, 0]) - epsilon\n",
" y_min = np.min(countours[0][:, 0, 1]) - epsilon\n",
2020-09-15 02:15:15 -03:00
" \n",
2020-10-06 18:34:28 -03:00
" List_P = np.array([(x_min, y_min), (x_max, y_min), (x_max, y_max), (x_min, y_max)])\n",
2020-09-15 02:15:15 -03:00
"\n",
2020-10-06 18:34:28 -03:00
" L_strings.append({'id': i, 'points' : List_P, 'panels' : []})\n",
2020-09-15 02:15:15 -03:00
"\n",
"plt.figure(0)\n",
"plt.figure(figsize=(16, 16))\n",
"plt.imshow((GR.raster[:3,:,:]).transpose((1, 2, 0)))\n",
"\n",
"ax = plt.gca()\n",
"\n",
2020-10-06 18:34:28 -03:00
"for Poly in L_strings:\n",
" \n",
" poly = patches.Polygon(Poly['points'],\n",
2020-09-15 02:15:15 -03:00
" linewidth=2,\n",
" edgecolor='red',\n",
" alpha=0.5,\n",
" fill = True)\n",
2020-10-06 18:34:28 -03:00
" plt.text(np.mean([x[0] for x in Poly['points']]), np.mean([y[1] for y in Poly['points']]) , str(Poly['id']), bbox=dict(facecolor='red', alpha=0.8))\n",
"\n",
" ax.add_patch(poly)\n",
" \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Segmentation Panel and save coordinates"
]
},
{
"cell_type": "code",
2020-11-02 18:55:35 -03:00
"execution_count": 23,
2020-10-06 18:34:28 -03:00
"metadata": {},
2020-11-02 18:55:35 -03:00
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 432x288 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 432x288 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA6UAAABhCAYAAAAusAd5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXhU5fn/8fc9M1lIwhZ2CEuABHABRVldal2qtCpaaYvizrcURVyqtvq1v6KtV7W1da0b1r0oUqxLXUG+VlBAAVkUkV0WWcK+JGSbeX5/zAAJmSwzmWSS4fO6Lq6ZOeeZZ+7Mw0nOfc6zmHMOERERERERkXjwxDsAEREREREROXopKRUREREREZG4UVIqIiIiIiIicaOkVEREREREROJGSamIiIiIiIjEjZJSERERERERiZs6SUrN7DwzW25mq8zsjrr4DBEREREREWn8LNbrlJqZF1gBnANsBOYBlzrnvonpB4mIiIiIiEijVxd3SgcCq5xza5xzxcBkYHgdfI6IiIiIiIg0cr46qLMTsKHM643AoKrekGwpLpX0OghFRERERERE4m0fu7Y759qE21cXSamF2Vahj7CZjQHGAKSSxiA7qw5CERERERERkXj7yE1dV9m+uui+uxHoXOZ1FrDpyELOuYnOuZOdcycnkVIHYYiIiIiIiEhDVxdJ6Twgx8yyzSwZGAm8XQefIyIiIiIiIo1czLvvOudKzewG4EPACzznnFsa688RERERERGRxq8uxpTinHsPeK8u6hYREREREZHEURfdd0VERERERERqREmpiIiIiIiIxI2SUhEREREREYkbJaUiIiIiIiISN0pKRUREREREJG6UlIqIiIiIiEjcKCkVERERERGRuFFSKiIiIiIiInGjpFRERERERETiRkmpiIiIiIiIxI2SUhEREREREYkbJaUiIiIiIiISN0pKRUREREREJG6UlIqIiIiIiEjcKCkVERERERGRuFFSKiIiIiIiInGjpFRERERERETixhfvAI42vuyutH11Jz4L1Pg9M+YdR6/ffk0gPz98ATO2jxlM/2uXRB3Xksf70uKlOXj69SFr4vqo6ylrxtzj6XXnEgIFBXjbtCHQrf2hffu7pNHnN1/z0ZJj6DWxkNUjMjjjjGD8M6f3Jfut/VXW7c3bTem6Dfiyu+Jv3Swm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
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2020-10-06 18:34:28 -03:00
"source": [
"V_thresh = 100\n",
2020-09-15 02:15:15 -03:00
"\n",
2020-10-06 18:34:28 -03:00
"\n",
2020-11-02 18:55:35 -03:00
"for Poly in L_strings[60:61]:\n",
2020-10-06 18:34:28 -03:00
" \n",
" P = Poly['points']\n",
" x_min = np.min(P[:,0])\n",
" x_max = np.max(P[:,0])\n",
" y_min = np.min(P[:,1]) \n",
" y_max = np.max(P[:,1])\n",
" A = (GR.raster[:3,:,:]).transpose((1, 2, 0))[y_min : y_max, x_min : x_max,:]\n",
"\n",
" # rotate clockwise if vertival panel\n",
" if (x_max-x_min) < (y_max-y_min):\n",
" A = cv2.rotate(A, cv2.ROTATE_90_CLOCKWISE);\n",
"\n",
" HSV_A = Utils.rgb2hsv(A)\n",
"\n",
" H = cv2.GaussianBlur(HSV_A[:, :, 0],(kernel_size, kernel_size),0)\n",
" S = np.zeros(HSV_A.shape[:2])\n",
" S = cv2.normalize(HSV_A[:, :, 1], S, 0, 255, cv2.NORM_MINMAX).astype(np.uint8)\n",
" V = np.zeros(HSV_A.shape[:2])\n",
" V = cv2.normalize(HSV_A[:, :, 2], V, 0, 255, cv2.NORM_MINMAX).astype(np.uint8)\n",
"\n",
" kernel_size = 31\n",
" H = cv2.GaussianBlur(H,(kernel_size, kernel_size),0)\n",
" Hs = np.ones(H.shape)\n",
" Hs[H > 270] = 0\n",
" Hs[H < 210] = 0\n",
"\n",
" G = cv2.cvtColor(A,cv2.COLOR_RGB2GRAY)\n",
"\n",
" ## Otsu in gray, Saturation and value channel ###\n",
"\n",
" V1 = (V > V_thresh).astype(np.uint8)\n",
" V1 = cv2.morphologyEx(V1, cv2.MORPH_CLOSE, np.ones((3,3), dtype=np.uint8),iterations = 5)\n",
"\n",
" G = cv2.cvtColor(A,cv2.COLOR_RGB2GRAY)\n",
" G[V1 == 0] = np.mean(G)\n",
" _, G = cv2.threshold(cv2.GaussianBlur(G, (3, 3),0), 0, 255 , cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)\n",
" G[V1 == 0] = 0\n",
" G[Hs == 0] = 0\n",
"\n",
" thresh = G \n",
" thresh = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, np.ones((3,3), dtype=np.uint8),iterations = 1)\n",
" thresh = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, np.ones((3,3), dtype=np.uint8), iterations = 1)\n",
"\n",
" ### Use Watershed in thresh segmentation\n",
" Areas,dist, markers = Utils.watershed_marked(thresh, min_Area = 200, threshold_median_Area = 8)\n",
" \n",
" \n",
" ### Save panel position ####\n",
" markers = markers > 1\n",
" label_im, nb_labels = ndimage.label(markers)\n",
" l_panels_coord = []\n",
" \n",
" for i in range(1, nb_labels + 1):\n",
" countours, hierarchy = cv2.findContours(np.uint8(label_im == i), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)\n",
" x_max_panel = np.max(countours[0][:, 0, 0]) \n",
" y_max_panel = np.max(countours[0][:, 0, 1]) \n",
" x_min_panel = np.min(countours[0][:, 0, 0]) \n",
" y_min_panel = np.min(countours[0][:, 0, 1])\n",
" \n",
" panels_coord = np.array([(x_min_panel, y_min_panel), \n",
" (x_max_panel, y_min_panel), \n",
" (x_max_panel, y_max_panel), \n",
" (x_min_panel, y_max_panel)])\n",
" \n",
" l_panels_coord.append(panels_coord)\n",
" \n",
" l_panels_coord_xywh = [(p[0][0], p[0][1], p[1][0] - p[0][0], p[2][1] - p[0][1]) for p in l_panels_coord]\n",
" max_width = max(l_panels_coord_xywh, key=lambda r: r[0] + r[2])[0]\n",
" max_height = max(l_panels_coord_xywh, key=lambda r: r[3])[3]\n",
" nearest = max_height * .7\n",
" l_panels_coord_xywh.sort(key=lambda r: (int(nearest * round(float(r[1])/nearest)) * max_width + r[0]))\n",
" \n",
" for i in range(1, nb_labels + 1): \n",
" \n",
" panels_coord = np.array([(l_panels_coord_xywh[i - 1][0], l_panels_coord_xywh[i - 1][1]), \n",
" (l_panels_coord_xywh[i - 1][0] + l_panels_coord_xywh[i - 1][2], l_panels_coord_xywh[i - 1][1]), \n",
" (l_panels_coord_xywh[i - 1][0] + l_panels_coord_xywh[i - 1][2], l_panels_coord_xywh[i - 1][1] + l_panels_coord_xywh[i - 1][3]), \n",
" (l_panels_coord_xywh[i - 1][0], l_panels_coord_xywh[i - 1][1] + l_panels_coord_xywh[i - 1][3])])\n",
" \n",
" if (x_max-x_min) < (y_max-y_min):\n",
" R = cv2.rotate(panels_coord, cv2.ROTATE_90_COUNTERCLOCKWISE)\n",
" panels_coord =np.array([R[:,0],\n",
" R[:,1],\n",
" R[:,2],\n",
" R[:,3]])\n",
" panels_coord[:, 1] = (y_max - y_min) - panels_coord[:, 1]\n",
" \n",
" Poly['panels'].append({'id' : i, 'points' : panels_coord + (x_min, y_min)})\n",
" \n",
" \n",
" if False:\n",
" \n",
" plt.imsave('Data_set/Train/Image_' + str(P_index) + '.png', resize(A, [100, 800]))\n",
" cv2.imwrite(r'Data_set/SegmentationLabel/Image_' + str(P_index) + '.png', resize(markers, [100, 800]))\n",
" \n",
2020-11-02 18:55:35 -03:00
" if True:\n",
2020-10-06 18:34:28 -03:00
" \n",
" plt.figure(0)\n",
" plt.figure(figsize=(16, 16))\n",
" plt.title(\"origin\")\n",
" plt.imshow(A) \n",
"\n",
" plt.figure(1)\n",
" plt.figure(figsize=(16, 16))\n",
" plt.title(\"Otsu\")\n",
" plt.imshow(thresh) \n",
"\n",
" plt.figure(3)\n",
" plt.figure(figsize=(16, 16))\n",
" plt.title(\"background\")\n",
" plt.imshow(markers== 0)\n",
"\n",
" plt.figure(4)\n",
" plt.figure(figsize=(16, 16))\n",
" plt.imshow(markers)"
2020-09-15 02:15:15 -03:00
]
},
{
"cell_type": "code",
2020-11-02 18:55:35 -03:00
"execution_count": 14,
2020-09-15 02:15:15 -03:00
"metadata": {},
2020-09-29 03:44:54 -03:00
"outputs": [
{
2020-11-02 18:55:35 -03:00
"ename": "IndexError",
"evalue": "list index out of range",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-14-11c4c37e5050>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 29\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 30\u001b[0m \u001b[0mn_panel\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 31\u001b[0;31m \u001b[0mname_panel\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mL_strings\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mn_string\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'id'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m'_'\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mL_strings\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mn_string\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'panels'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mn_panel\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'id'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 32\u001b[0m \u001b[0mP\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mL_strings\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mn_string\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'panels'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mn_panel\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'points'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 33\u001b[0m \u001b[0mx_min\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mP\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mIndexError\u001b[0m: list index out of range"
]
2020-09-29 03:44:54 -03:00
},
{
"data": {
"text/plain": [
"<Figure size 432x288 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2020-11-02 18:55:35 -03:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA54AAACYCAYAAACMPjZnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9za6tTZIe9ETku86pKndjQLKwZBrBgCtAgitAYsYMARfgCUyREENPGTHtAQNGcAOWuAaPQQJZCIsGywIBctvl+vZ6M4JBxBMRufY+X7W7usvCWimds/de633zJzL+IzJS3B3v9m7v9m7v9m7v9m7v9m7v9m7v9m5/WU3/WU/g3d7t3d7t3d7t3d7t3d7t3d7t3f75bm/D893e7d3e7d3e7d3e7d3e7d3e7d3+Utvb8Hy3d3u3d3u3d3u3d3u3d3u3d3u3v9T2Njzf7d3e7d3e7d3e7d3e7d3e7d3e7S+1vQ3Pd3u3d3u3d3u3d3u3d3u3d3u3d/tLbW/D893e7d3e7d3e7d3e7d3e7d3e7d3+UtvvZHiKyL8nIv+TiPxdEfnP/6Im9W7v9m7v9m7v9m7v9m7v9m7v9m7//DT5897jKSILwP8M4N8F8CcA/g6A/8jd/8e/uOm927u927u927u927u927u927u92//f2+8S8fy3Afxdd/9f3P0DwH8L4N//i5nWu73bu73bu73bu73bu73bu73bu/3z0q7f4d2/AeB/G3//CYB/5/UhEfmbAP4mAHz79vi3/vq/8tcgIscz7g5GXj0+4MsQCD8FHHABMD/j7863BR3DHdHc7gI1urw+Nr4V5Nj/NO3o/dMYjjO6TDi8juNjPe6cC4AJN/cDAp8HnXP5Oqp9LJtj5TgF5i/mzlmfcP5iLC4DHmsU4GVBX89qTvfnnvuinXPz8cn57rl2zG3/eqSvgD0+m3v4mkVQ+M6OXv6s+UzQfDH+QTeDBPi5v8JuPjvnO5/7RAxzzHPPfXz3ih9HL5zPazaFfL0bn8b92Sd+1Nj5D2DwZ2xf4fnrE8DBoo6nf9Qrn/nzZpj8WZoM5PnhOJ/4msPH3w3C172TL9DodYyviOOr716//xmkf5nDQS9f9Pp5vL8IeAscNrqST1P+xLJ+1Aq2A7t+9EKt94uOS579Nnx97fLPQVmfXvl52H769ov3m598Qa/yeSUnGPwzerwOWvz8t6/3S33hZb6v8/mzt9zrHyCs+1fwfe1h7jHl6FffzfYZej9HMz/67ods5NANvurtt0Hr54Qdf/Uxpx8I3q9e/Dzbn3nmZwT/a/tKbL4+8DP9fea7P2o/C9yff+WHeljP/BPP+W3My8/HPvOsz5tY8vGH8/2CEObnX/H/T0NOPffPyIFf5Mfn6XytY38aenb3c2N9MRV3HzD8TLWf+dGUA17vTXk/CZW6229TBamrzc/cPWHxQ415qLBf0O/LHP7+3/8H/5e7/7XX738Xw/Pn+Fd/4P7HAP4YAP61P/ob/l/8Z/8J1rWw1goh6ILn8wMf9xPmBjeHmwUAVKC6YNvhNgAruWARiIQyZ26wbfEuHOZTOCUDyy50CSAKgUJF4lk3wB0iAlGFSn6HsUnFB+J/BcIQNkN/I4UEIoCo5obGcx4WBETjX4xTaJRzxwEHhwP5PBDfwQxuOwcRlJGeysop1D0mUMwg4FcGvztsbzy3wQTQtbB01YzMPRbqHitUCdhYwE4uB7Y07isJaMdcPUctnsI5ayFSriz28jZ4PSKIrG7ALd+WUD7kYE6SYKieGu7ci1RZvPZ7IqpAldCh8KCR4djbICJQlcJbTxwLPFUoAh5mnnONPpbms+OzVGUD52sfjuWUwCDRa+Jl4G6vS1cnLhSdcG4DJ+CJU8TDgps05zWHxc69CNmeo4tiDVibxzsCYEEgkjhv1kokcZxDiQw8jH+Wm6XUrfIzQeBbdhI4kbCrSao2frHDsb+t6p4Mud9B7FtukiT9i0wnhue8HNss1yP5U+tZm7BK2iOMbdB1z603vIRAcVcqX83k6xlD46AEr1xrYduGjTEEUjALnpn9eL4vsaeSAk4SHw0GGGmweUxBMfGp5usCd1IPnYlB3aoCgM+2ozHmrRApplE8z2r+U2DSeLeil0NY5zDiiUhwaI4D8k8nnXjhZO8wUaedfmsp7vs+5iwqIBXW8wlfrTm3c87dIYmXfK7b2BNI8D4N/si+Z5PiE46Nne9p4SNEoZnMdMCw5BuJcPAASMhFjI/zRfJVefmu9JNiH1K8mQ9QMvb+yNGXp0yhjKgupfEIArimrDDAE7+NtKqKa62ihVrR4D3RU3/r5CdOeeD1/loT43LOXJIf37RsGx9QxsSfk4v2fCZeqGopGA0B4ro1P4FgLYUq+Qh5y9wTL5qIdXrrVZh7uRoiXzixRQViEnpV8lnykSkevUSLDz0KzS9Sv9Ic24onJu2v4JtyIAlKnwNQfLgBTmkzcFiat4fsya9VINDia69NVFtGonUYTyCWXkae6NzJAbHcUIXlr610UNbVR0tbNkwZJSSk6LPGRPOXMTn0JkvPs+DktSdA4Iltg1O3BVqPAeBu2Lkw0h1lwYDGwJPWRXXIBNSYSBkX36u2ntDieiXsATPDtg0VwdIFiOScN7bdvVdzjSKQ0nscsO7bU6+ETQOP2OKpb7T7j32qKpB73LzEYdZ6RtEP7YZGiISngFvFvaAs9JqqQwttvCZYsshjT9p4D7yMuU65uSC6glZsBz0idVzbsNK9B94rKQhQUVwiqVMC99C/Wh0lFE78Kz5VPFaLNxDfzAx/62/9l38PX7TfxfD8EwB/NP7+VwH8Hz/3Qsj+KRBSKREyHyF0x/d8Ga2UeBJRKhNT6XALhYnK56G6KFoJoWBLRcFF09o/jYt4uxnFsRkOlL7UWFwc1t3hO5Xvkju9WdUJJLl4M2VIGBpGwTz1BPRYQweBvAiuZm5TuNfApzfzRcEg4ofN6Vi+SmioeSkC5gbdDrj2ECaZxC3Nc4M3pKMAaZSM+QpAjY1KN38K5k/JdZLd9UMycIuD1l5ZqQSJF/7Sa/41ZRnISA3uBpWr+3/dD27lpy/b2EX11zOjQfrKH3qX5hfe8yklD21syuvLHEVTLqfhNBWlwcjh0TO7mqtwSBoXY40v9AAgFDo+oTrorKcXa43d08nkp5ImaLhJw3EyeHEZYztoCnjSk8uJ80ecZQgSIIXIEAPBA9KYJY3mJolICVyBNgy5RzaUTxKoNp75gAXndzD2nhjOTW2lYj4zRm5l/Oy+fq/lpAAM+Dp8ATReCucoAE2Dzzn4X8KQErb3s8b0XGgylnN/X9ug7DIAmucOZAUmj0ucrjkUMKUVz5xGGH0tX7jvZXi8zGUuJrZfSnkueB7OjUEDhWmtCLPpkDsHvAjT4usyXszvEqdejZ9ylb0iVUN1fOUn/fP50UHaYy2Lvno0+QHBHiAK3PAXOAEl3lD4O/nomM1w+w3nTDg4RJQTO9Y40SPmwz1sWj951Lmg4sOFB3oCuPiT4GQpc+cIh4G/ue5+tuFzzqD/692ZcuNc6zSUuUZyttozD5w3TX2pZIQU/hd0x4Tqs+1Q8tcJvzGdWE3rM4LWKYot4HPnnLtAIK71Xsvg5Kwakwyn2YRHwmc4cr9ulGL87VQoyD5aLDQOEKpaXDNffNEPGo9Dj6XhPSghxkrGW466KRuOGccAlMPlsP5ELpSRaPx8AXStXILvuK6EpaNFviB0tzvHG8t1lFzjWks+DLyefIz7CkgaV/nO4BVfNe4NnZyeitg2+eFL4oRyygVP3vsFH2xHVu+lvvBXQGG2M9AyPn7hlm1gNiKIzHFTN0t88EGjEMFKfE7P7+Bzya3FId48aGoCk1OWjTN41ySFV+0A0o5AfuZAOJiHsn1KD8pP4r5/Zu5A86L64a9gO9rvYnj+HQD/poj8GwD+dwD/IYD/+OdeCA/XKqQnSg0f+cFIZUg1bgicETgqiWGtBNJLBeYmU87BA4JpEDVnbC7KjaWA7OE5XjDIMgYduKCHcsyIKRARyTLgtDS3ISBr1bVhjEXRUyZAei5
2020-09-29 03:44:54 -03:00
"text/plain": [
"<Figure size 1152x1152 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
2020-10-06 18:34:28 -03:00
"n_string = 60\n",
2020-09-29 03:44:54 -03:00
"\n",
2020-10-06 18:34:28 -03:00
"P_string = L_strings[n_string - 1]['points']\n",
"x_min = np.min(P_string[:,0])\n",
"x_max = np.max(P_string[:,0])\n",
"y_min = np.min(P_string[:,1]) \n",
"y_max = np.max(P_string[:,1])\n",
"A = (GR.raster[:3,:,:]).transpose((1, 2, 0))[y_min : y_max, x_min : x_max,:]\n",
2020-09-29 03:44:54 -03:00
"\n",
"plt.figure(0)\n",
"plt.figure(figsize=(16, 16))\n",
2020-10-06 18:34:28 -03:00
"plt.imshow(A)\n",
2020-09-29 03:44:54 -03:00
"\n",
2020-10-06 18:34:28 -03:00
"ax = plt.gca()\n",
2020-09-29 03:44:54 -03:00
"\n",
2020-10-06 18:34:28 -03:00
"for dict_panel in L_strings[n_string - 1]['panels']:\n",
" \n",
" Poly = dict_panel['points'] - (x_min, y_min)\n",
" poly = patches.Polygon(Poly,\n",
" linewidth=2,\n",
" edgecolor='red',\n",
" alpha=0.5,\n",
" fill = True)\n",
" plt.text(np.mean([x[0] for x in Poly]), np.mean([y[1] for y in Poly]) , str(dict_panel['id']),\n",
" bbox=dict(facecolor='red', alpha=0.8), fontsize=6)\n",
2020-09-29 03:44:54 -03:00
"\n",
2020-10-06 18:34:28 -03:00
" ax.add_patch(poly)\n",
2020-09-29 03:44:54 -03:00
"\n",
"\n",
2020-10-06 18:34:28 -03:00
"n_panel = 2\n",
"name_panel = str(L_strings[n_string - 1]['id']) + '_' + str(L_strings[n_string - 1]['panels'][n_panel-1]['id'])\n",
"P = L_strings[n_string - 1]['panels'][n_panel-1]['points']\n",
"x_min = np.min(P[:,0])\n",
"x_max = np.max(P[:,0])\n",
"y_min = np.min(P[:,1]) \n",
"y_max = np.max(P[:,1])\n",
"A = (GR.raster[:3,:,:]).transpose((1, 2, 0))[y_min : y_max, x_min : x_max,:]\n",
2020-09-29 03:44:54 -03:00
"\n",
2020-10-06 18:34:28 -03:00
"plt.figure(1)\n",
"plt.figure(figsize=(8, 8))\n",
"plt.imshow(A)\n",
"plt.title(name_panel)\n"
2020-09-29 03:44:54 -03:00
]
},
{
"cell_type": "code",
2020-11-02 18:55:35 -03:00
"execution_count": 7,
2020-09-29 03:44:54 -03:00
"metadata": {},
2020-11-02 18:55:35 -03:00
"outputs": [
{
"data": {
"text/plain": [
"(None,\n",
" 4285,\n",
" 9031,\n",
" (-69.8876184608113,\n",
" 5.284799999996489e-07,\n",
" 0.0,\n",
" -18.4429155221439,\n",
" 0.0,\n",
" -5.043639999999984e-07),\n",
" <osgeo.osr.SpatialReference; proxy of <Swig Object of type 'OSRSpatialReferenceShadow *' at 0x7f6d2a312ae0> >,\n",
" 'Byte')"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
" "
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(-69.8876184608113, 5.284799999996489e-07, 0.0, -18.4429155221439, 0.0, -5.043639999999984e-07)\n",
"-69.8870899808113 -18.4434198861439\n",
"[3900 2000]\n",
"(-69.8873278298117, 5.087700000010391e-07, 0.0, -18.4436753464489, 0.0, -4.855570000001095e-07)\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f6cfbd9b110>"
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"<Figure size 432x288 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"GR = gr.from_file(path_RGB)\n",
"geot = GR.geot\n",
"print(geot)\n",
"pxo_min, pxo_max = 2000,2400\n",
"pyo_min, pyo_max = 3900,4070\n",
"\n",
"x_min, y_min = gr.map_pixel_inv(pyo_min, pxo_min,geot[1],geot[-1], geot[0],geot[3])\n",
"x_max, y_max = gr.map_pixel_inv(pyo_max, pxo_max,geot[1],geot[-1], geot[0],geot[3])\n",
"print(x,y)\n",
"print(GR.map_pixel_location(x_min,y_min))\n",
"A = (GR.raster[:3,:,:]).transpose((1, 2, 0))[pyo_min : pyo_max, pxo_min : pxo_max,:]\n",
"\n",
"plt.figure(0)\n",
"plt.figure(figsize=(8, 8))\n",
"plt.imshow(A)\n",
"\n",
"T = gr.from_file(path_T)\n",
"geot = T.geot\n",
"print(geot)\n",
"py_min,px_min = T.map_pixel_location(x_min,y_min)\n",
"py_max, px_max = T.map_pixel_location(x_max,y_max)\n",
"A = (T.raster[:3,:,:]).transpose((1, 2, 0))[py_min : py_max, px_min : px_max,:]\n",
"\n",
"plt.figure(1)\n",
"plt.figure(figsize=(8, 8))\n",
"plt.imshow(A)"
]
2020-10-06 18:34:28 -03:00
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
2020-09-15 02:15:15 -03:00
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"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.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}