Files
Photovoltaic_Fault_Detector/GPS_Panel/.ipynb_checkpoints/Detect_Panel-checkpoint.ipynb

348 lines
1.9 MiB
Plaintext
Raw Normal View History

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",
"import cv2\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"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"
}
],
"source": [
"path_C = \"El_Aguila/result_C.tif\"\n",
"\n",
"GR = gr.from_file(path_C)\n",
"\n",
"plt.figure(0)\n",
"plt.figure(figsize=(16, 16))\n",
"plt.imshow((GR.raster[:3,:,:]).transpose((1, 2, 0)))\n",
"\n",
"HSV = Utils.rgb2hsv((GR.raster[:3,:,:]).transpose((1, 2, 0)))\n",
"\n",
"H = HSV[:, :, 0]"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f6554224f50>"
]
},
"execution_count": 3,
"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 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"
}
],
"source": [
"kernel_size = 21\n",
"edges = cv2.GaussianBlur((H).astype(np.uint8),(kernel_size, kernel_size),0)\n",
"\n",
"H2 = np.ones(H.shape)\n",
"#H2 = cv2.GaussianBlur(H2,(9,9),0).astype('float32')\n",
"H2[edges > 270] = 0\n",
"#H2[H < 270] = 1\n",
"H2[edges < 210] = 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",
"\n",
"plt.figure(0)\n",
"plt.figure(figsize=(16, 16))\n",
"plt.imshow(H2)\n",
"\n",
"plt.figure(1)\n",
"plt.figure(figsize=(16, 16))\n",
"plt.imshow(erode_H2)"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f656adbf890>"
]
},
"execution_count": 87,
"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 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"
}
],
"source": [
"\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",
"min_area = 50000\n",
"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",
"label_im, nb_labels = ndimage.label(L)#, structure= np.ones((2,2))) ## Label each connect region\n",
"label_areas = np.bincount(label_im.ravel())[1:]\n",
"\n",
"\n",
"plt.figure(0)\n",
"plt.figure(figsize=(16, 16))\n",
"plt.imshow(L)\n",
"\n",
"plt.figure(1)\n",
"plt.figure(figsize=(16, 16))\n",
"plt.imshow(label_im==1)\n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {},
"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"
}
],
"source": [
"L_P = []\n",
"for i in range(1, nb_labels + 1):\n",
" \n",
" countours, hierarchy = cv2.findContours(np.uint8(label_im == i), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)\n",
" x_max = np.max(countours[0][:, 0, 0])\n",
" y_max = np.max(countours[0][:, 0, 1])\n",
" x_min = np.min(countours[0][:, 0, 0])\n",
" y_min = np.min(countours[0][:, 0, 1])\n",
" \n",
" List_P = [(x_min, y_min), (x_max, y_min), (x_max, y_max), (x_min, y_max)]\n",
" L_P.append(List_P.copy())\n",
" \n",
"L_P = np.stack(L_P, axis=0)\n",
"\n",
"\n",
"\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",
"for i,Poly in enumerate(L_P):\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(i), bbox=dict(facecolor='red', alpha=0.8))\n",
"\n",
" ax.add_patch(poly)"
]
},
{
"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": []
}
],
"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
}