computer-vision/edge-detection.ipynb

215 lines
820 KiB
Plaintext
Raw Normal View History

2019-12-08 03:13:45 +00:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"import cv2\n",
"import math\n",
"import numpy as np\n",
"from scipy.signal import convolve2d\n",
"from matplotlib import pyplot as plt"
]
},
2019-12-08 03:13:45 +00:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# edge detection"
2019-12-08 03:13:45 +00:00
]
},
{
"cell_type": "code",
"execution_count": 2,
2019-12-08 03:13:45 +00:00
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
2019-12-08 03:13:45 +00:00
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x1a7791a11c0>"
2019-12-08 03:13:45 +00:00
]
},
"metadata": {},
"execution_count": 2
2019-12-08 03:13:45 +00:00
},
{
"output_type": "display_data",
2019-12-08 03:13:45 +00:00
"data": {
"text/plain": "<Figure size 432x288 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"251.806921pt\" version=\"1.1\" viewBox=\"0 0 367.157923 251.806921\" width=\"367.157923pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2021-01-01T21:45:18.924969</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.3, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 251.806921 \r\nL 367.157923 251.806921 \r\nL 367.157923 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 33.2875 227.928796 \r\nL 359.957923 227.928796 \r\nL 359.957923 10.488796 \r\nL 33.2875 10.488796 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g clip-path=\"url(#p90a5767683)\">\r\n <image height=\"218\" id=\"imagef5a6f8221b\" transform=\"scale(1 -1)translate(0 -218)\" width=\"327\" x=\"33.2875\" xlink:href=\"data:image/png;base64,\r\n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
"image/png": "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
2019-12-08 03:13:45 +00:00
},
"metadata": {
"needs_background": "light"
}
2019-12-08 03:13:45 +00:00
}
],
"source": [
"img = cv2.imread('sheep.png')[:,:,::-1]\n",
"plt.imshow(img)"
2019-12-08 03:13:45 +00:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# sobel filter"
2019-12-08 03:13:45 +00:00
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x1a7792c9250>"
]
},
"metadata": {},
"execution_count": 3
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 432x288 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"146.735677pt\" version=\"1.1\" viewBox=\"0 0 375.2875 146.735677\" width=\"375.2875pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2021-01-01T21:45:19.849968</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.3, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 146.735677 \r\nL 375.2875 146.735677 \r\nL 375.2875 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 33.2875 122.857552 \r\nL 368.0875 122.857552 \r\nL 368.0875 10.740885 \r\nL 33.2875 10.740885 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g clip-path=\"url(#p4bb49c358f)\">\r\n <image height=\"113\" id=\"image4e83990c65\" transform=\"scale(1 -1)translate(0 -113)\" width=\"335\" x=\"33.2875\" xlink:href=\"data:image/png;base64,\r\n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
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"kx = np.array([[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]]) / 4\n",
"ky = np.array([[1, 2, 1], [0, 0, 0], [-1, -2, -1]]) / 4\n",
"\n",
"grey = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n",
"\n",
"blur = convolve2d(grey, np.array([[1, 1, 1], [1, 1, 1], [1, 1, 1]]) / 9)\n",
"\n",
"dx = convolve2d(blur, kx)\n",
"dy = convolve2d(blur, ky)\n",
"\n",
"x = np.concatenate((dx, dy), axis=1)\n",
"\n",
"plt.imshow(x)"
]
},
2019-12-08 03:13:45 +00:00
{
"cell_type": "code",
"execution_count": 4,
2019-12-08 03:13:45 +00:00
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
2019-12-08 03:13:45 +00:00
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x1a77a5474c0>"
2019-12-08 03:13:45 +00:00
]
},
"metadata": {},
"execution_count": 4
2019-12-08 03:13:45 +00:00
},
{
"output_type": "display_data",
2019-12-08 03:13:45 +00:00
"data": {
"text/plain": "<Figure size 432x288 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"146.390698pt\" version=\"1.1\" viewBox=\"0 0 375.2875 146.390698\" width=\"375.2875pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2021-01-01T21:45:20.356969</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.3, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 146.390698 \r\nL 375.2875 146.390698 \r\nL 375.2875 -0 \r\nL 0 -0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 33.2875 122.512573 \r\nL 368.0875 122.512573 \r\nL 368.0875 10.739281 \r\nL 33.2875 10.739281 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g clip-path=\"url(#p1b33a23801)\">\r\n <image height=\"112\" id=\"image3930bf028a\" transform=\"scale(1 -1)translate(0 -112)\" width=\"335\" x=\"33.2875\" xlink:href=\"data:image/png;base64,\r\niVBORw0KGgoAAAANSUhEUgAAAU8AAABwCAYAAACelvI+AACuz0lEQVR4nOyddZgUZ9b2fyXt09Pj7j64OxEgIU4SEuLu7rKbrGQ3G3d3d1cSQhKIwODOuLtbe3fJ90fDwDBDAknYd9/93vu6uIDukqeqn3rqyH3uI6gtObpL8xHUNUyCTLcWYCeMgkCcZKNH9eDWNSTAKko4NRX7jr8B4iULBkECoFN149N1AKJEIyZBpkX1AJAoWWlXPZgFkSA6kaIZgyAR1FXaVC8RokyvphAhyoSJZvYFqq7RonoG9nFpPkTEQdex81pMgoim67h1bdhj2QSRSMlKn+bFIVqG3aZP8w5c9577WAUjPZqPOMk2MK6d90xCIEw049ECaGiYBAMaGh2qH6MgECmaaVO9SECcZB24Z8Cge70ndt6z3bHzPu++h1kQMAgiQV3DKhgwCTJ+XcEqGgFwab6Be7/n8fY8n0ro95UQcGoKdlEGGNhvz3kTseN7FR0D0sBvYxYENCByx2/dpnoHnWfn/TIJMu2qhzjJiiSIex3b/mD3se3rXNsbPFpg2Odm53kMgvi7z7EnOlU3dtGISTAMnMenayTKYcNu3666B5634eDSfKjow877nc90lGgcmC8HGjufH4CUHdfk0QL4dYVIyXpAzgO7nud9gaC25Og5y88l5ksz7YcFEXoNxKwX0GToO9xDXmI7PU+m4djUgRJrp/IMM47tEvYFLbg+TiDhuzbq77WweerrAOR8fTHRKw3Eru2h4lYzR+SWsOrZCYhB6Dw0QNarOk2XB3F8YmPeTSu4M24r93dn8/XVh5BxVxnfbxzBIeNLGGtv4NrIWgBe649hmqWOPIMNvx5ERkJBZbXfwLk/XkDUT0Z6DvUxObOO1SVZHD12KytenkjiNy2hqxRFvFlRtE8wEAjXiV+n4Y6TcKXp5L7eDf7QxK89LZGjTyhi8fvTWbDoZ4o6M1k28lP+1jGSE8I3sGj1RQS7zeS/6KZ2QTjpi9003KgRGeahuT6aI8dv5YePJrDpysdZ4xc468vLiNos0luoo9o0opJ7GRfbTNEXYzBP6aKn0UHh4z2UXhrN+YcuZ+VJI/FkR/HY049z/GfXkP9cH8giFWeFY68WSVzahic7is6xBtI+aEGJC8fzVyfhNxgGrqFzZgIdBwXJe9aPL86CqduP3Omi+sw4xICAwQmKDfyjPKheGcGgMTe/jO9KCoj+0Yg7SSDjo04IBOk4KIHYH1tpXJCIP1In670eSq+zEVZiwhuvoUuQulSl7gSdyPUGEpa20jkzASmg8/MDTzH6qStJXeok8uEmSt4vQPbqBG0CKZ+FfpfmoxLxzHDxwMQP2OZN5eeTR4OqojmsZD1TxVPJqyhccRb+Nis5b/moOtmCHj34pbgveH7mq0wwOllQfAaNbZEAxH9lJHJtG81HJtI/2ReaJpIOgo4AZMV3sqTwi2GP16N6OGjdhRyeVsqDiRt4pCeDx5bNDz1QQQFd0iEiGDrP10b6Fzo5LKOMz7aP2e+x7w3pb4rUHi/y6ZGPUexP5G/vn0rmh/2UXWFBMA41DjJfFWiYa0RJ8Q97PMdqMwaXTufcod+nvi9jK+mg7uREvIW+P+wafgm6S6bwiV50UaT0ynAEq4K12ExEhUrzguAffh4CoWN2T4un/fBfnmOXjP+JW6IrEOoaEvQT/3ITYU0BrLc3s70ymbwXAtQfEYa5HZyzPCR+YKIvU8KTqBG9RSBmaQ09B2fQXSiSssxH1ygzffkq6GDqlkg/qI6KTakkrtBxrGmiY24q7mP7CVaE848T3mG+tYkffHFcv+QMyk54Co8eYLUvnMOtoQvo07x0qirZhtAbpzzo5vmuWRwSXsKfHz+fhOPqaf4qjdRPW3GOiiX5xgr+lvwFR319LcZIH+mPChjqO1Eam5AKc+mcGoOtVcFS30fJdQ6iEvro7ggHv0jBzSVoTicA/qMm0zXSQMpX3fge9qLrAiZJ4byUFTx856l0jwQ1IUDGWwLm2h68mZEEr+umMLKNzU+NIawliDPFQOc0hdmjywhoMpuXFmAY14Phqwik4zrp6bMhVVjxJwRJXSzQeZYHk0Eh8aYgusVI+Y1mTJYgPreRwj+3UnJXAnlPBJG6nKjRdvqzbJh6FYxL1iGazSiTCkAQEH/aiCDL1N0+hcw3W1ErqpEiI2k7uYDwuiC1iyDtExFLiwfBp1D3dxmt2E7m/dvoP2IEjuJeOqZE4UoX0GSdnGfqaZufRvSLRVS/NY6Dsiop7onHagjS82EyroPdRH9qJXJtGzV3h2FcYSd+rQdfjJHm2SKvnvgUF7xxBcEwnYNmbKfyvhE4kyWSv2hCqWsETUW022k9ZzTJJ9VQ3hIHNV
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAACSCAYAAAC+Pop7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAC4q0lEQVR4nOydd5gUVdaH31vVabon55wjOcOAgqAoYsScFQPmvKZdd1131TXnLCbMKBgxIAIGhpzDRIbJOYeeTlX3+6NxYJxBgqDoN+/zzDMz1RVuVVeduvfcc35HSCnpp59++unnr4XyRzegn3766aefg0+/ce+nn376+QvSb9z76aeffv6C9Bv3fvrpp5+/IP3GvZ9++unnL0i/ce+nn376+QtyyIy7EGKaECJfCFEkhLjzUB2nn3766aef3ohDEecuhFCBAmAqUAGsBs6VUm476Afrp59++umnF4eq5z4GKJJSFkspXcD7wCmH6Fj99NNPP/38AsMh2m8MUL7b/xXA2N1XEELMAmYB2KxiZHKKSn+ubD+HEwYhUPunpfo5jFm7ydkgpQzr67NDZdz3ipTyZeBlgCFDjDI84N8YK5v+qOb0008v8u8PoWjy69h1F8N+uhy33fRHN6mffgC4YtSP/D00HzWqqHRP6xwq414JxO32f+zOZX0iAWNlE56SskPUnH762X+0zggAmnQXqXe3oxXt+INb1E8/Xma/cQR/Pzb/V9c5VGPO1UCaECJJCGECzgE+O0TH6qeffvrp5xcckp67lNIjhLgO+AZQgdeklFsPxbH66aeffvrpzSHzuUspvwS+PFT776effvrpZ8/0hwL0008//fwF6TfufwIMyYkwbsgf3Yx++unnT8QfFgrZz77jKS6B4j+6Ff3008+fif6eez/99NPPX5B+495PP/308xek37j3008//fwF6Tfu/fTTTz9/QfqNez/99NPPX5B+495PP/308xek37j389dGUb0//fRzOCLEIdv1X964K35+tJ07DmHsl2v9/4YaGkL9J6lkrFL6k8D62YUQu37+QNSQYApeG0HzxdkIw8FPOfrrJzG53fiVdiE17Y9uyf8LxMiBtGb49Vhmq3ahLln3u7fFkx7Li4Nn81XbUEqn20hY8bs3oZ+DjOrvT8v0Acid3dKAgg7kmi37tK0YPZj8yy1cNC4HTSroUrDgzSOw1ukE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
2019-12-08 03:13:45 +00:00
},
"metadata": {
"needs_background": "light"
}
2019-12-08 03:13:45 +00:00
}
],
"source": [
"kx = np.array([[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]]) / 4\n",
"ky = np.array([[1, 2, 1], [0, 0, 0], [-1, -2, -1]]) / 4\n",
"\n",
"grey = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n",
2019-12-08 03:13:45 +00:00
"\n",
"blur = convolve2d(grey, np.array([[1, 1, 1], [1, 1, 1], [1, 1, 1]]) / 9)\n",
"\n",
"dx_grey = convolve2d(grey, kx)\n",
"dy_grey = convolve2d(grey, ky)\n",
"\n",
"dx_blur = convolve2d(blur, kx)\n",
"dy_blur = convolve2d(blur, ky)\n",
"\n",
"dx = np.concatenate((dx_grey, dx_blur[1:-1, 1:-1]), axis=1)\n",
"dy = np.concatenate((dy_grey, dy_blur[1:-1, 1:-1]), axis=1)\n",
"\n",
"x = np.sqrt(dx**2 + dy**2) > 20\n",
"plt.imshow(x)"
2019-12-08 03:13:45 +00:00
]
},
{
"source": [
"# canny filter"
],
"cell_type": "markdown",
"metadata": {}
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x1a77a2d5dc0>"
]
},
"metadata": {},
"execution_count": 5
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 432x288 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"251.806921pt\" version=\"1.1\" viewBox=\"0 0 367.157923 251.806921\" width=\"367.157923pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2021-01-01T21:45:20.917970</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.3, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 251.806921 \r\nL 367.157923 251.806921 \r\nL 367.157923 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 33.2875 227.928796 \r\nL 359.957923 227.928796 \r\nL 359.957923 10.488796 \r\nL 33.2875 10.488796 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g clip-path=\"url(#p100ee77410)\">\r\n <image height=\"218\" id=\"imaged9d992af71\" transform=\"scale(1 -1)translate(0 -218)\" width=\"327\" x=\"33.2875\" xlink:href=\"data:image/png;base64,\r\n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
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAW8AAAD8CAYAAAC4uSVNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAACWRklEQVR4nOydeVxUVfvAv2dm2AVExQ1RdndFEQXcSi3ct8zM0izT1LTSsuWtX+vbm2WLZalpmlmmuVXmnprlguKGuCOLyKKoiCA7M3N+fwyyyAADDIh2v5/PfGDuPefcZ+7cee65z3kWIaVEQUFBQeHeQnW3BVBQUFBQqDiK8lZQUFC4B1GUt4KCgsI9iKK8FRQUFO5BFOWtoKCgcA+iKG8FBQWFe5BqU95CiP5CiPNCiEghxOvVdRwFBQWFfyOiOvy8hRBqIAJ4CIgHDgOPSynPmP1gCgoKCv9Cqmvm3RWIlFJGSylzgdXAsGo6loKCgsK/Dk01jesCxBV5Hw90K62xpbCS1thVkygKCgoK9ya3SLkupXQ2tq+6lHe5CCEmA5MBrLGlm+h7t0RRUFBQqJXslOtiS9tXXWaTBMC1yPtm+dsKkFIullJ2kVJ2scCqmsRQUFBQuD+pLuV9GPAWQrgLISyBMcDGajqWgoKCwr+OajGbSCm1QojpwHZADSyTUp6ujmMpKCgo/BupNpu3lHILsKW6xldQUFD4N6NEWCooKCjcgyjKW0FBQeEeRFHeCgoKCvcgivJWUFBQuAdRlLeCgoLCPYiivBUUFBTuQRTlraCgoHAPoihvBQUFhXsQRXkrKCgo3IMoyltBQUHhHkRR3goKCgr3IIryVlBQULgHUZS3goKCwj2IorwVFBQU7kEU5a2goKBwD6IobwUFBYV7EEV5KygoKNyDVFp5CyFchRB/CSHOCCFOCyFezN/+rhAiQQgRlv8aaD5xFRQUFBSgamXQtMDLUspjQgh74KgQ4s/8fV9IKT+tungKCgoKCsaotPKWUl4GLuf/f0sIcRZwMZdgCgoKCgqlYxabtxDCDegEHMrfNF0IES6EWCaEcCqlz2QhxBEhxJE8cswhhoKCgsK/hiorbyFEHWA98JKUMg1YCHgCvhhm5p8Z6yelXCyl7CKl7GKBVVXFUFBQUPhXUSXlLYSwwKC4V0opNwBIKZOklDoppR5YAnStupgKCgoKCkWpireJAJYCZ6WUnxfZ3qRIsxHAqcqLp6CgoKBgjKp4m3QHxgEnhRBh+dv+AzwuhPAFJHAReK4Kx1BQUFBQMEJVvE32AcLIri2VF0dBQUGhdqHq0Aqtg3XBe8uoK2gvX7mLEhmoysxbQUFB4b7HceFVnmm0l4t5zvS1jWD4/Fdp+qmivBUUFGoTQqBq27LEZv2pc3dBmNrD/733LA3+iefnJbXH/0JR3goK/2KERoPKvXnBe2lrxcz160q0mzdgiNH+usgYkLLa5KstZNcXyOU6vnFfw5O/vXy3xQEU5a2gUCGElRXqxg2Lb9Tq0CYkVmlcjWszUBlbQjKO/loy+szMKh0TlRpd9/b88fN3HM2Pk7uic+TLvv1LNH37r7UltgVYqxnYbzQiIwvtpfj7VonHpjnx7QvzAXjqw1k0XHLgLktkQMhacMIdRD3ZTfS922IoKBRDZWuLysG+2LYbD7rz3UdfFNu2Pb0tu/p5AyClRJd01aTxNY0bFfw/Y98eXDU3TZbtic9exmVtVInt+oxM9LduldlXaDSoG9Qn16sJ835ayP4sT9a3aYSmUUNkHVvm7vy5RJ9XA4YXe6+9ksTb0ceoq8qhraUNgzoHo72SZLL8tRG1szNCXeg9rbuejNRq76JEsFOuOyql7GJsnzLzVlAogsraGmFjA0DslNZsnfpJsf0vXRzB7E5FEmVKPTRyZlHocgDO5Toxz78HALqUFKPHUDsZMkZ8evBX7FR6AKZ0GITuZqrJcmo3pLJw9vpi2xxVany3z6D1KyWVelGyunryw5J5/JLWkVnuQajr1kXdqgELt39PnNaWWW6BJfosuVT8WFP8R/K+R+f8fftMlrs280LIP7SzTEYPNFHbEPzUZCx2Hr3bYpWKorwVFIoQMceXk6O+Il3mEfSPG8+1HVBsf1p/D34NL4hJ46fU9mxvn2Zop9cjbG1ZEf4bAOPalDQ/AGw5/RdXdRmMd+9dZGZXXHGr7OxAZZgF6tPTi5kkVNbWuD51iclZDxSbGUbPCeTQE59CeNmfce61Hkxq0RNVnToI3+Zs2bySHZkWTGreo9Q+d+5bFLuBaS37oc/OLvtg9xgTR09DdTqGPiFVM4PVBIryVlC4g7Ybp+Mz/ShWr9uw8dwecmRewb5nLloyzrV7sfbq1l6s+fNHzuepeLNVT8Z3GMyak1tZe/bPO4cGIF0P45r3AGn8kVxYWfHksXMMs0sAYNhTz2OxrzBQOeP3Jmxpu4run82iyYLCmaHnO8cY/1bv8h/1Bcigjmxdu5x0fTbbMh35wqt12X3ukG9Kix5ANsLKipv6+0ONpOmtWb9uccH7bfoHjLYTGg1SL0GvqyHJjKPYvBUUbiMEkV90Q1pIrK6pOTXpa9odeIrmj54st6vGvQUb9q3jfJ6OV70KZ6kVsZkKjUEJzjp3gnlDhqM7H41QCbocyeH/nI8VtOv1xgvUXRHCpbXtCQtaVmyMVn88T8vphrZSLw1mHaEqUDRCo0HbowM7f17G8rSGrGrV1KgMZfFH7CGGuAUi83L5MW4/EzoMLtVEdF+gUiOKLCZf/Lk1qpP2uP43pNoXaRWbt4KCCUQs9EeVCd7PH+LSO0G0/PsZPMeGmdRXGxPL0GZdUTdowObY7QCk6bMZ07zILL20H7owKIbPIvfSysKKoT1HoouJ5PGzCYyzv0L/sRMZ+re6oHldQgBo/uhJhuJfbCjLD9Vsjg1FLVR0DH0czZa61HssHlXfOLKGdeWfhYvRyVDmp7izqW3xbM3qRg3ZcnwHOqkv59OKYnLfE9wpq6lKVwic9jqy0m1nkY2hqHuoaGk9Fbc3Q8wmYkVRlLeCQhGixizC3XoyPtMq5g6m8XDjnV1r+T93fwa6GBbyhJUV2xMOFbQJbuprtO/KS/tooLZjYMeh6K5dAy4y9UIk3z46lFVhZ1Bx3GQ53N4MYeCbnUl8NYiTLy0gwHIUqr5xpI8OYP+8Rcy+0onwziUVl6ZJYzYf3Ua8Np2JZdi+C8llTXwIjio7k2W7m2xPKH4OB3gFmeRq6XbImm+b7Sbg1Wk4/nSwYPuFFZ2JfnohXpZT8Zx9dxS4YjZRUDDCpXeDyPPJLDbzvvVYAAe+WFTwfn5Ki2KzV00zF77Yv4YZLYrbxBGiQHkEN/Vle2LhmP3du/FT5G7GV5PpIXlSIEfeWwjAc/GBXOyaZbax18SHMKb1w+W6JtYGtieGEezSCaTk1/hQHvF5oFzl7XscPm4URo8XnsNu3aFi+y6s6IxFnJXJM2/dg53ZudJg4votow4Lvb1M6leW2USpHq+gUITIeQFELOhK83cPlDCZ2P9ykOCmvgQ39aXf2GeY4RTL9sQwpl6ILGjjY2FX0nVOyoJZ9/bEsIIxgpv6InNyeMK1e7XZjOsvCaHba1MZFdWPi12zyHu4C9sTwxh6JrmgjcatOdsTw5gfu9/kcX+ND8VRZVMdIlcb2xOOsz0xDFuVZblt+5zM4ONGYfSePLmE4o5Z3YHofstK6VmS3P7+dJ93iOCmvvQf9ESF5S4NxWyioHAHMcMX4271LD4Tj5TaRr3nGMFNfRGd2rJt80rso07yiScM7PQwW47v4Me4/SW8UgDD7I+qPe3m/tmCv9r+DkC7L6fh8rHpJh6LHUdKNd+YysaEw1gJy3zTQ+2fdd8muJlfEQ+R8k0mfcZPxHpnKI776rPGY1eRPWG0WTANt/+aft7fcz7N56c82DGuYjKXhTLzVlAogtfMQ3ivmFrw/sqLQdzY5FNqeyElGzNs+cTbFwBd0lUGduhLQ7UdK+PyZ7JCsDHhMMHN/NgUX/yGsDJuv8GnuwJYPnyJ4GZ+BDfzI7tjJpfeCapQf2OE52Yzw71XmW02JRxlU8J
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"img = cv2.imread('sheep.png')\n",
"edges = cv2.Canny(img, 150, 220)\n",
"plt.imshow(edges)"
]
2019-12-08 03:13:45 +00:00
}
],
"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.8.4-final"
2019-12-08 03:13:45 +00:00
}
},
"nbformat": 4,
"nbformat_minor": 4
}