s470623-wko/wko-05.ipynb

1 line
6.0 MiB
Plaintext
Raw Normal View History

2023-01-16 14:13:05 +01:00
{"cells":[{"cell_type":"markdown","id":"94b34c51","metadata":{"id":"94b34c51"},"source":["![Logo 1](img/aitech-logotyp-1.jpg)\n","<div class=\"alert alert-block alert-info\">\n","<h1> Widzenie komputerowe </h1>\n","<h2> 05. <i>Transformacje geometryczne i cechy obrazów</i> [laboratoria]</h2> \n","<h3>Andrzej Wójtowicz (2021)</h3>\n","</div>\n","\n","![Logo 2](img/aitech-logotyp-2.jpg)"]},{"cell_type":"markdown","id":"512b22b6","metadata":{"id":"512b22b6"},"source":["W poniższych materiałach zobaczymy jak przy pomocy biblitoeki OpenCV realizować transformacje geometryczne obrazu, wyszukiwać \"ciekawe\" elementy obrazu oraz jak łączyć je z innymi podobnymi elementami na innych obrazach.\n","\n","Na początku załadujmy niezbędne biblioteki."]},{"cell_type":"code","source":["from google.colab import drive\n","drive.mount('/content/drive')\n","%cd /content/drive/My Drive/aitech-wko-pub"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"1f-KJDPitBTT","executionInfo":{"status":"ok","timestamp":1673874677752,"user_tz":-60,"elapsed":17115,"user":{"displayName":"Cezary Gałązkiewicz","userId":"01409497901784152256"}},"outputId":"b12106ca-b99c-4fa2-898f-c1b58cd63d78"},"id":"1f-KJDPitBTT","execution_count":3,"outputs":[{"output_type":"stream","name":"stdout","text":["Mounted at /content/drive\n","/content/drive/My Drive/aitech-wko-pub\n"]}]},{"cell_type":"code","execution_count":2,"id":"4c6170e3","metadata":{"id":"4c6170e3","executionInfo":{"status":"ok","timestamp":1673874660642,"user_tz":-60,"elapsed":1104,"user":{"displayName":"Cezary Gałązkiewicz","userId":"01409497901784152256"}}},"outputs":[],"source":["import cv2 as cv\n","import numpy as np\n","import matplotlib.pyplot as plt\n","%matplotlib inline"]},{"cell_type":"markdown","id":"2256ace3","metadata":{"id":"2256ace3"},"source":["# Transformacje obrazu\n","\n","Zacznijmy od podstawowych przekształceń geometrycznych. Aby efekt poszczególnych operacji był widoczny, dodamy pustą przestrzeń wokół testowego obrazu, na którym będziemy pracować:"]},{"cell_type":"code","execution_count":null,"id":"cb9554d1","metadata":{"id":"cb9554d1","outputId":"3f87bb92-5727-43fa-c7cf-9c1437909519"},"outputs":[{"data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAAcoAAAGyCAYAAABk7YRwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9a6xk23Xfh/7GmHOtqtrPfpw+3edNUiRFUpSsWJJlWknkOLJohcmFLSEwcHMdQ8iXOLQRW4GREAgUOEGiILhIgiBK4BiGYyAXsSFfwIFtRbCubBGJRb0oyZIoPkRSJA/Jc/r06cfu/aiqteYc434Ys/YhbaXjRGySas0fUDzsvWvXrl279hpzjPEf/yHu7nQ6nU6n0/lt0a/1E+h0Op1O5+uZHig7nU6n03kEPVB2Op1Op/MIeqDsdDqdTucR9EDZ6XQ6nc4j6IGy0+l0Op1H0ANlp9PpdDqPoAfKTqfT6XQeQQ+UnU6n0+k8gh4oO51Op9N5BF/XgfJHf/RHedOb3sRyueQ7v/M7+fmf//mv9VPqdDqdzu8xvm4D5d/8m3+TH/qhH+I/+o/+I37pl36J3/f7fh/vfe97ee21177WT63T6XQ6v4eQr1dT9O/8zu/kO77jO/hv/9v/FgAz44UXXuDP/bk/x3/wH/wHX+Nn1+l0Op3fK+Sv9RP47ZimiQ9/+MN84AMfuPyYqvI93/M9fOhDH/ptv2a73bLdbi//bWbcu3eP69evIyKP/Tl3Op1O5+sHd+f09JRnn30W1d9Z8fTrMlC+/vrr1Fq5efPml3385s2bfOxjH/ttv+ZHfuRH+Et/6S99NZ5ep9PpdH6X8PLLL/P888//jh7j67ZH+X+VD3zgA5ycnFzePve5z32tn1Kn0+l0vsYcHh7+jh/j6zKjfOqpp0gpcfv27S/7+O3bt7l169Zv+zWLxYLFYvHVeHqdTqfT+V3CV6L19nWZUY7jyLd927fxUz/1U5cfMzN+6qd+ive85z1fw2fW6XQ6nd9rfF1mlAA/9EM/xJ/+03+ab//2b+cP/IE/wH/9X//XnJ+f84M/+INf66fW6XQ6nd9DfN0Gyj/5J/8kd+7c4Yd/+Id59dVX+dZv/VZ+4id+4p8S+HQ6nU6n8zj5up2j/J3y8OFDjo+Pv9ZPo9PpdDpfQ05OTjg6OvodPcbXZY+y0+l0Op2vF3qg7HQ6nU7nEfRA2el0Op3OI+iBstPpdDqdR9ADZafT6XQ6j6AHyk6n0+l0HkEPlJ1Op9PpPIIeKDudTqfTeQQ9UHY6nU6n8wh6oOx0Op1O5xH0QNnpdDqdziPogbLT6XQ6nUfQA2Wn0+l0Oo+gB8pOp9PpdB5BD5SdTqfT6TyCHig7nU6n03kEPVB2Op1Op/MIeqDsdDqdTucR9EDZ6XQ6nc4j6IGy0+l0Op1H0ANlp9PpdDqPoAfKTqfT6XQeQQ+UnU6n0+k8gh4oO51Op9N5BD1QdjqdTqfzCHqg7HQ6nU7nEfRA2el0Op3OI+iBstPpdDqdR9ADZafT6XQ6j6AHyk6n0+l0HkEPlJ1Op9PpPIIeKDudTqfTeQQ9UHY6nU6n8wh6oOx0Op1O5xH0QNnpdDqdziPogbLT6XQ6nUfQA2Wn0+l0Oo+gB8pOp9PpdB5BD5SdTqfT6TyCHig7nU6n03kEPVB2Op1Op/MIeqDsdDqdTucR9EDZ6XQ6nc4j6IGy0+l0Op1H0ANlp9PpdDqPoAfKTqfT6XQeQQ+UnU6n0+k8gh4oO51Op9N5BD1QdjqdTqfzCHqg7HQ6nU7nEfRA2el0Op3OI+iBstPpdDqdR9ADZafT6XQ6j6AHyk6n0+l0HkEPlJ1Op9PpPIIeKDudTqfT