├── .gitignore ├── 01_black_and_white.ipynb ├── 02_basics_of_images.ipynb ├── 03_videos_resize_overlay.ipynb ├── 04_padding_and_subplot.ipynb ├── 05_adding_blending.ipynb ├── 06a_drawing.ipynb ├── 06b_drawing.ipynb ├── 07_trackbar_brightness_contrast.ipynb ├── 08_tracking_with_trackbar.ipynb ├── 09_transformations.ipynb ├── 10_thresholding.ipynb ├── 11_filtering_lowpass.ipynb ├── 12_filtering_highpass.ipynb ├── 13_morphological_operators.ipynb ├── 14_histograms.ipynb ├── 15_1_contours.ipynb ├── 15_2_contours.ipynb ├── 15_3_contours.ipynb ├── README.md ├── ada.jpg ├── audi.jpg ├── barco.jpg ├── base_mama ├── IR_0089.jpg ├── IR_0100.jpg ├── IR_0106.jpg ├── IR_0129.jpg ├── IR_0141.jpg ├── IR_0149.jpg ├── IR_0159.jpg ├── IR_0207.jpg ├── IR_0213.jpg ├── IR_0219.jpg ├── IR_0225.jpg ├── IR_0414.jpg ├── IR_0432.jpg ├── IR_0438.jpg ├── IR_0446.jpg ├── IR_0614.jpg ├── IR_0622.jpg ├── IR_0637.jpg ├── IR_0706.jpg ├── IR_0716.jpg ├── IR_0729.jpg ├── IR_0737.jpg ├── IR_0747.jpg ├── IR_0756.jpg ├── IR_0768.jpg ├── IR_0777.jpg ├── IR_0787.jpg ├── IR_0805.jpg ├── IR_0819.jpg ├── IR_0836.jpg ├── IR_0849.jpg ├── IR_0860.jpg ├── IR_0861.jpg ├── IR_0875.jpg ├── IR_0886.jpg ├── IR_0899.jpg ├── IR_0947.jpg ├── IR_0965.jpg ├── IR_0968.jpg ├── IR_0973.jpg ├── IR_0982.jpg ├── IR_0990.jpg ├── IR_0995.jpg ├── IR_0996.jpg ├── IR_1000.jpg ├── IR_1003.jpg ├── IR_1016.jpg ├── IR_1026.jpg ├── IR_1031.jpg ├── IR_1041.jpg ├── IR_1047.jpg ├── IR_1166.jpg ├── IR_1174.jpg ├── IR_1182.jpg ├── IR_1190.jpg ├── IR_1245.jpg ├── IR_1252.jpg ├── IR_1258.jpg ├── IR_1270.jpg ├── IR_1283.jpg ├── IR_1290.jpg ├── IR_1321.jpg ├── IR_1330.jpg ├── IR_1336.jpg ├── IR_1349.jpg ├── IR_1353.jpg ├── IR_1358.jpg ├── IR_1366.jpg ├── IR_1366a.jpg ├── IR_1426.jpg ├── IR_1545.jpg ├── IR_1558.jpg ├── IR_1627.jpg ├── IR_1632.jpg ├── IR_1639.jpg ├── IR_1714.jpg ├── IR_1729.jpg ├── IR_1739.jpg ├── IR_1750.jpg ├── IR_1762.jpg ├── IR_2841.jpg ├── IR_2846.jpg ├── IR_2859.jpg ├── IR_2869.jpg ├── IR_2873.jpg ├── IR_2877.jpg ├── IR_2884.jpg ├── IR_2889.jpg ├── IR_2899.jpg ├── IR_2904.jpg ├── IR_2918.jpg ├── IR_2927.jpg ├── IR_2931.jpg ├── IR_2942.jpg ├── IR_2944.jpg ├── IR_2952.jpg ├── IR_2957.jpg ├── IR_2961.jpg ├── IR_2966.jpg ├── IR_2971.jpg ├── IR_2977.jpg ├── IR_3105.jpg ├── IR_3109.jpg ├── IR_3113.jpg ├── IR_3117.jpg ├── IR_3309.jpg ├── IR_3330.jpg ├── IR_3416.jpg ├── IR_3420.jpg ├── IR_3425.jpg ├── IR_3429.jpg ├── IR_3433.jpg ├── IR_3437.jpg ├── IR_3441.jpg ├── IR_3506.jpg ├── IR_3604.jpg ├── IR_3609.jpg ├── IR_3614.jpg ├── IR_3619.jpg ├── IR_3624.jpg ├── IR_3630.jpg ├── IR_3635.jpg ├── IR_3639.jpg ├── IR_3643.jpg ├── IR_3648.jpg ├── IR_3652.jpg ├── IR_3678.jpg ├── IR_3689.jpg ├── IR_3697.jpg ├── IR_3702.jpg ├── IR_3712.jpg ├── IR_3716.jpg ├── IR_3722.jpg ├── IR_3727.jpg ├── IR_3730.jpg ├── IR_3734.jpg ├── IR_3739.jpg ├── IR_3743.jpg ├── IR_3744.jpg ├── IR_3748.jpg ├── IR_3756.jpg ├── IR_3759.jpg ├── IR_3764.jpg ├── IR_3769.jpg ├── IR_3773.jpg ├── IR_3777.jpg ├── IR_3782.jpg ├── IR_3786.jpg ├── IR_3792.jpg ├── IR_3797.jpg ├── IR_3801.jpg ├── IR_3809.jpg ├── IR_3814.jpg ├── IR_3819.jpg ├── IR_3825.jpg ├── IR_3830.jpg ├── IR_3834.jpg ├── IR_3839.jpg ├── IR_3843.jpg ├── IR_3849.jpg ├── IR_3921.jpg ├── IR_3927.jpg ├── IR_3933.jpg ├── IR_3940.jpg ├── IR_3946.jpg ├── IR_3951.jpg ├── IR_3957.jpg ├── IR_3962.jpg ├── IR_3967.jpg ├── IR_3977.jpg ├── IR_3983.jpg ├── IR_3996.jpg ├── IR_4001.jpg ├── IR_4006.jpg ├── IR_4071.jpg ├── IR_4075.jpg ├── IR_4081.jpg ├── IR_4089.jpg ├── IR_4094.jpg ├── IR_4098.jpg ├── IR_4111.jpg ├── IR_4120.jpg ├── IR_4125.jpg ├── IR_4130.jpg ├── IR_4136.jpg ├── IR_4141.jpg ├── IR_4149.jpg ├── IR_4875.jpg ├── IR_4882.jpg ├── IR_4900.jpg ├── IR_4905.jpg ├── IR_4910.jpg ├── IR_4917.jpg ├── IR_4957.jpg ├── IR_4968.jpg ├── IR_4974.jpg ├── IR_4978.jpg ├── IR_4983.jpg ├── IR_5068.jpg ├── IR_5077.jpg ├── IR_5088.jpg ├── IR_5099.jpg ├── IR_5140.jpg ├── IR_5149.jpg ├── IR_5159.jpg ├── IR_5169.jpg ├── IR_5178.jpg ├── IR_5280.jpg ├── IR_5285.jpg ├── IR_5293.jpg ├── IR_5297.jpg ├── IR_5300.jpg ├── IR_5317.jpg ├── IR_5336.jpg ├── IR_5349.jpg ├── IR_5358.jpg ├── IR_5365.jpg ├── IR_5371.jpg ├── IR_5378.jpg ├── IR_5451.jpg ├── IR_5462.jpg ├── IR_5469.jpg ├── IR_5471.jpg ├── IR_5479.jpg ├── IR_5485.jpg ├── IR_5491.jpg ├── IR_5506.jpg ├── IR_5511.jpg ├── IR_5517.jpg ├── IR_5526.jpg ├── IR_5531.jpg ├── IR_5541.jpg ├── IR_5548.jpg ├── IR_5557.jpg ├── IR_5563.jpg ├── IR_5570.jpg ├── IR_5614.jpg ├── IR_5624.jpg ├── IR_5651.jpg ├── IR_5656.jpg ├── IR_5657.jpg ├── IR_5670.jpg ├── IR_5678.jpg ├── IR_5687.jpg ├── IR_5708.jpg ├── IR_5756.jpg ├── IR_5763.jpg ├── IR_5769.jpg ├── IR_5776.jpg ├── IR_5855.jpg ├── IR_5870.jpg ├── IR_5878.jpg ├── IR_5883.jpg ├── IR_5902.jpg ├── IR_5916.jpg ├── IR_5920.jpg ├── IR_5923.jpg ├── IR_5929.jpg ├── IR_5931.jpg ├── IR_5941.jpg ├── IR_5964.jpg ├── IR_5986.jpg ├── IR_6002.jpg ├── IR_6010.jpg ├── IR_6020.jpg ├── IR_6084.jpg ├── IR_6105.jpg ├── IR_6113.jpg ├── IR_7446.jpg ├── IR_7455.jpg ├── IR_7464.jpg ├── IR_7479.jpg ├── IR_8143.jpg ├── IR_8153.jpg ├── IR_8163.jpg ├── IR_8199.jpg ├── IR_8208.jpg ├── IR_8228.jpg ├── IR_8236.jpg ├── IR_8269.jpg ├── IR_8277.jpg ├── IR_8285.jpg ├── IR_8296.jpg ├── IR_8304.jpg └── IR_8317.jpg ├── bear.jpg ├── car.jpeg ├── car.jpg ├── car_plate.webp ├── coins.jpg ├── debug.log ├── horse.jpg ├── legos ├── batman1.jpg ├── batman2.jpg ├── ca1.jpg ├── ca2.jpg ├── flash1.jpg ├── flash2.jpg ├── ha1.jpg ├── ha2.jpg ├── hf1.jpg ├── hf2.jpg ├── hulk1.jpg ├── hulk2.jpg ├── robin.jpg ├── superman1.jpg ├── superman2.jpg ├── thor1.jpg ├── thor2.jpg ├── wolv1.jpg ├── wolv2.jpg ├── ww1.jpg └── ww2.jpg ├── lowcontrastimg2.jpg ├── maca_caindo.mp4 ├── maca_segmentada.mp4 ├── mandrill_condec.jpg ├── output.mp4 ├── pikachu.jpg ├── pirula.jpg ├── pokemon_dataset └── pokemon.csv ├── sat_map3.jpg ├── space.jpg ├── src ├── 01_black_and_white.py ├── 02_basics_of_images.py ├── 03_video_resize_overlay.py ├── 04_other_basic_operations.py ├── 05_adding_blending.py ├── ARTIGOS.jpg ├── ada.jpg ├── ada_bw.jpg ├── ada_red.jpg ├── atila_bravo.png ├── atila_feliz.png ├── atilameme.png ├── background.jpg ├── bin1.png ├── bin2.png ├── corona.mkv ├── fundo2.jpg ├── logosvbr.png ├── memeatila.png └── novaImagemAda.jpg ├── sudoku.jpg ├── svbr.jpeg ├── taj.jpg └── tijolos.jpg /.gitignore: -------------------------------------------------------------------------------- 1 | .ipynb_checkpoints/ 2 | ep14/ 3 | include 4 | Lib 5 | Scripts 6 | tcl 7 | LICENSE.txt 8 | *.avi 9 | *.png 10 | *.gif 11 | -------------------------------------------------------------------------------- /06b_drawing.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import cv2\n", 10 | "import numpy as np\n", 11 | "\n", 12 | "BLACK = (0, 0, 0)\n", 13 | "\n", 14 | "def showImage(img):\n", 15 | " from matplotlib import pyplot as plt\n", 16 | " plt.imshow(img)\n", 17 | " plt.show()" 18 | ] 19 | }, 20 | { 21 | "cell_type": "code", 22 | "execution_count": 2, 23 | "metadata": {}, 24 | "outputs": [], 25 | "source": [ 26 | "def drawLine(image, startPoint, endPoint, color = BLACK, thickness = 5):\n", 27 | " cv2.line(image,\n", 28 | " startPoint,\n", 29 | " endPoint,\n", 30 | " color,\n", 31 | " thickness)" 32 | ] 33 | }, 34 | { 35 | "cell_type": "code", 36 | "execution_count": 3, 37 | "metadata": {}, 38 | "outputs": [ 39 | { 40 | "data": { 41 | "image/png": "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\n", 42 | "text/plain": [ 43 | "
" 44 | ] 45 | }, 46 | "metadata": { 47 | "needs_background": "light" 48 | }, 49 | "output_type": "display_data" 50 | } 51 | ], 52 | "source": [ 53 | "ticTacToeBoard = np.empty([400, 300, 3], dtype = np.uint8)\n", 54 | "ticTacToeBoard.fill(255)\n", 55 | "\n", 56 | "drawLine(ticTacToeBoard, (100, 100), (100, 300))\n", 57 | "drawLine(ticTacToeBoard, (200, 100), (200, 300))\n", 58 | "drawLine(ticTacToeBoard, (50, 150), (250, 150))\n", 59 | "drawLine(ticTacToeBoard, (50, 250), (250, 250))\n", 60 | "\n", 61 | "showImage(ticTacToeBoard)" 62 | ] 63 | }, 64 | { 65 | "cell_type": "code", 66 | "execution_count": 4, 67 | "metadata": {}, 68 | "outputs": [], 69 | "source": [ 70 | "def drawRectangleInBoard(image, posXBoard, posYBoard, color): \n", 71 | " startPosX, startPosY = 50 + posXBoard * 80, 100 + posYBoard * 80\n", 72 | " endPosX, endPosY = 90 + posXBoard * 80, 140 + posYBoard * 80\n", 73 | " \n", 74 | " cv2.rectangle(image,\n", 75 | " (startPosX, startPosY),\n", 76 | " (endPosX, endPosY),\n", 77 | " color,\n", 78 | " -1)" 79 | ] 80 | }, 81 | { 82 | "cell_type": "code", 83 | "execution_count": 47, 84 | "metadata": {}, 85 | "outputs": [], 86 | "source": [ 87 | "def drawTriangleInBoard(image, posXBoard, posYBoard, color):\n", 88 | " startPosX, startPosY = 50 + posXBoard * 80, 100 + posYBoard * 80\n", 89 | " endPosX, endPosY = 90 + posXBoard * 80, 140 + posYBoard * 80\n", 90 | " \n", 91 | " vertices = np.array([[(startPosX, startPosY), (endPosX, startPosY), ((startPosX + endPosX) / 2, endPosY)]], np.int32)\n", 92 | " cv2.fillPoly(image,\n", 93 | " vertices,\n", 94 | " color)" 95 | ] 96 | }, 97 | { 98 | "cell_type": "code", 99 | "execution_count": 53, 100 | "metadata": {}, 101 | "outputs": [], 102 | "source": [ 103 | "EMPATE = -1\n", 104 | "VAZIO = 0\n", 105 | "HUMANO = 1\n", 106 | "CPU = 2\n", 107 | "\n", 108 | "def checkGameOver(board):\n", 109 | "\n", 110 | " #vitórias por linha\n", 111 | " if board[0][0] == board[1][0] == board[2][0] and board[0][0] != VAZIO:\n", 112 | " return board[0][0]\n", 113 | " if board[0][1] == board[1][1] == board[2][1] and board[0][1] != VAZIO:\n", 114 | " return board[0][1]\n", 115 | " if board[0][2] == board[1][2] == board[2][2] and board[0][2] != VAZIO:\n", 116 | " return board[0][2]\n", 117 | " \n", 118 | " #vitórias por coluna\n", 119 | " if board[0][0] == board[0][1] == board[0][2] and board[0][0] != VAZIO:\n", 120 | " return board[0][0]\n", 121 | " if board[1][0] == board[1][1] == board[1][2] and board[1][0] != VAZIO:\n", 122 | " return board[1][0]\n", 123 | " if board[2][0] == board[2][1] == board[2][2] and board[2][0] != VAZIO:\n", 124 | " return board[2][0]\n", 125 | " \n", 126 | " #vitórias por diagonal\n", 127 | " if board[0][0] == board[1][1] == board[2][2] and board[0][0] != VAZIO:\n", 128 | " return board[0][0]\n", 129 | " if board[2][0] == board[1][1] == board[0][2] and board[2][0] != VAZIO:\n", 130 | " return board[2][0]\n", 131 | " \n", 132 | " #empate\n", 133 | " if VAZIO not in board[0] and VAZIO not in board[1] and VAZIO not in board[2]:\n", 134 | " return EMPATE" 135 | ] 136 | }, 137 | { 138 | "cell_type": "code", 139 | "execution_count": 56, 140 | "metadata": {}, 141 | "outputs": [ 142 | { 143 | "data": { 144 | "image/png": "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\n", 145 | "text/plain": [ 146 | "
" 147 | ] 148 | }, 149 | "metadata": { 150 | "needs_background": "light" 151 | }, 152 | "output_type": "display_data" 153 | }, 154 | { 155 | "name": "stdout", 156 | "output_type": "stream", 157 | "text": [ 158 | "TURNO DO JOGADOR HUMANO.\n", 159 | "Informe a posição x da sua jogada:2\n", 160 | "Informe a posição y da sua jogada:2\n" 161 | ] 162 | }, 163 | { 164 | "data": { 165 | "image/png": "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\n", 166 | "text/plain": [ 167 | "
" 168 | ] 169 | }, 170 | "metadata": { 171 | "needs_background": "light" 172 | }, 173 | "output_type": "display_data" 174 | }, 175 | { 176 | "name": "stdout", 177 | "output_type": "stream", 178 | "text": [ 179 | "TURNO DO JOGADOR CPU.\n" 180 | ] 181 | }, 182 | { 183 | "data": { 184 | "image/png": "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\n", 185 | "text/plain": [ 186 | "
" 187 | ] 188 | }, 189 | "metadata": { 190 | "needs_background": "light" 191 | }, 192 | "output_type": "display_data" 193 | }, 194 | { 195 | "name": "stdout", 196 | "output_type": "stream", 197 | "text": [ 198 | "TURNO DO JOGADOR HUMANO.\n", 199 | "Informe a posição x da sua jogada:0\n", 200 | "Informe a posição y da sua jogada:2\n" 201 | ] 202 | }, 203 | { 204 | "data": { 205 | "image/png": "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\n", 206 | "text/plain": [ 207 | "
" 208 | ] 209 | }, 210 | "metadata": { 211 | "needs_background": "light" 212 | }, 213 | "output_type": "display_data" 214 | }, 215 | { 216 | "name": "stdout", 217 | "output_type": "stream", 218 | "text": [ 219 | "TURNO DO JOGADOR CPU.\n" 220 | ] 221 | }, 222 | { 223 | "data": { 224 | "image/png": "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\n", 225 | "text/plain": [ 226 | "
" 227 | ] 228 | }, 229 | "metadata": { 230 | "needs_background": "light" 231 | }, 232 | "output_type": "display_data" 233 | }, 234 | { 235 | "name": "stdout", 236 | "output_type": "stream", 237 | "text": [ 238 | "TURNO DO JOGADOR HUMANO.\n", 239 | "Informe a posição x da sua jogada:0\n", 240 | "Informe a posição y da sua jogada:0\n" 241 | ] 242 | }, 243 | { 244 | "data": { 245 | "image/png": "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\n", 246 | "text/plain": [ 247 | "
" 248 | ] 249 | }, 250 | "metadata": { 251 | "needs_background": "light" 252 | }, 253 | "output_type": "display_data" 254 | }, 255 | { 256 | "name": "stdout", 257 | "output_type": "stream", 258 | "text": [ 259 | "TURNO DO JOGADOR CPU.\n" 260 | ] 261 | }, 262 | { 263 | "data": { 264 | "image/png": "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\n", 265 | "text/plain": [ 266 | "
" 267 | ] 268 | }, 269 | "metadata": { 270 | "needs_background": "light" 271 | }, 272 | "output_type": "display_data" 273 | }, 274 | { 275 | "name": "stdout", 276 | "output_type": "stream", 277 | "text": [ 278 | "TURNO DO JOGADOR HUMANO.\n", 279 | "Informe a posição x da sua jogada:1\n", 280 | "Informe a posição y da sua jogada:0\n" 281 | ] 282 | }, 283 | { 284 | "data": { 285 | "image/png": "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\n", 286 | "text/plain": [ 287 | "
" 288 | ] 289 | }, 290 | "metadata": { 291 | "needs_background": "light" 292 | }, 293 | "output_type": "display_data" 294 | }, 295 | { 296 | "name": "stdout", 297 | "output_type": "stream", 298 | "text": [ 299 | "TURNO DO JOGADOR CPU.\n" 300 | ] 301 | }, 302 | { 303 | "data": { 304 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMsAAAD8CAYAAADZhFAmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAANdUlEQVR4nO3dX8xbdR3H8ffHCWqUROb+BJQ5JCMRTZzmCZpojIp/5m4GFxi4MLsggQtJMPFm6oV4YaIG5MZAApH4aFRcogRC8M9YNMaEIJPMOZy4CQsMnmwDNKIXKvj1or9iLX2efXva055z+nklTU9PT9ff6Tmf9vRp96kiAjM7s1fNewBmbeGwmCU5LGZJDotZksNiluSwmCXVFhZJOyQ9JumYpD113Y/ZrKiOz1kkrQP+BHwMOAE8DFwdEX+Y+p2ZzUhdryyXAsci4vGI+BdwF7Crpvsym4lX1/Tvvhl4auDyCeC9qy28YcOG2Lp1a01DMcs7fvw4zz77rEZdV1dYRt3Z/x3vSboWuBZgy5YtHDhwoKahmOUtLS2tel1dh2EngAsGLr8FeGZwgYi4PSKWImJp48aNNQ3DbHrqCsvDwDZJF0o6G7gKuLem+zKbiVoOwyLiRUnXAz8D1gF3RsSjddyX2azU9Z6FiLgfuL+uf99s1vwJvlmSw2KW5LCYJTksZkkOi1mSw2KW5LCYJTksZkkOi1mSw2KW5LCYJTksZkkOi1mSw2KW5LCYJTksZkkOi1mSw2KWNNF/K5Z0HHgBeAl4MSKWJK0HfghsBY4Dn4qIv0w2TLP5m8Yry4cjYntE9AuX9gD7I2IbsL9cNmu9Og7DdgHLZXoZuLyG+zCbuUnDEsDPJf22NEwCbI6IFYByvmnC+zBrhEmrkN4fEc9I2gTsk/TH7A2H61vNmm6iV5aIeKacnwLupteef1LSeQDl/NQqt3V9q7VK5bBIer2kc/rTwMeBw/RqWneXxXYD90w6SLMmmOQwbDNwt6T+v/P9iPippIeBvZKuAZ4Erpx8mGbzVzksEfE48K4R858DLptkUGZN5E/wzZIcFrMkh8UsyWExS3JYzJIcFrMkh8UsyWExS3JYzJIcFrMkh8UsyWExS3JYzJIcFrMkh8UsyWExS3JYzJIcFrMkh8Us6YxhkXSnpFOSDg/MWy9pn6Sj5fzcges+L+mYpMckfaKugZvNWuaV5dvAjqF5I/uMJV0CXAW8o9zmVknrpjbalpFEab/plP56dXHd1nLGsETEr4Dnh2av1me8C7grIv4ZEU8Ax+gV7zWGVN/p/+9HI6ebMt5pWaTAVH3Pslqf8ZuBpwaWO1HmvYKkayUdkHTg9OnTFYfRHBHzHoHVbdpv8Ec9zYzcjeZV39q2nbqO8bbtMWiKqmFZrc/4BHDBwHJvAZ6pPrx28M63GKqGZbU+43uBqyS9RtKFwDbgN5MNcfratnNPc7xtW/cmOWN9q6QfAB8CNkg6AXwJ+Coj+owj4lFJe4E/AC8Cn4mIl2oa+0QipvNG1zvf4jhjWCLi6lWuGtlnHBFfAb4yyaDaYpZBmUa4HezJLPQn+N55bBwLHZa2cbjna+HDUnUHbNuO27bxNtHCh6VtvNPPj8PC+DvgvHfYto23KxyWjnNQpsdhGZN3vsXlsBRtC0FmvG1bp6ZzWMbgnW+xOSwD2haGtcbbtnVpA4dlyGo7mXc+c1gSmhyUUWNr8njbzGEZwTubjeKwdIDDPRsOyyr6O2DbdsS2jbdNHJaOcEjq57CsoW07YNvG2zYOi1lS1frWGyU9LelgOe0cuM71rdZJZ/w/+PTqW78JfGdo/i0RcdPgjKH61vOBByRd3KTSink1KHa5uXEW6xYNOMasWt+6mkbXt3Z5h+26Jmy7Sd6zXC/pUDlM67foL2x9q3Vf1bDcBlwEbAdWgJvL/EbXtzbhpdyqacK2y7xneYWIONmflnQHcF+52Pj61lk96MOHDU3Y2NPS5XVbS6VXln7PcXEF0P9LWSvqW82qqFrf+iFJ2+kdYh0HroN21beajatqfeu31lh+YepbbbH4E3yzJIfFLMlhMUtyWMySHBazJIfFLMlhMUtyWMySHBazJIfFLKnSt45brc7/RFTHt2/rGm9d3xRu23jH4FcWsySHxSzJYTFLcljMkhwWsySHxSzJYTFLytS3XiDpF5KOSHpU0g1l/npJ+yQdLefnDtzGFa7WOZlXlheBz0XE24H3AZ8pNa17gP0RsQ3YXy4PV7juAG6VtK6OwZvNUqa+dSUiHinTLwBH6LVM7gKWy2LLwOVlutEVrmZVjfWeRdJW4N3AQ8DmiFiBXqCATWWxVIWr61utbdJhkfQG4EfAZyPib2stOmLeK77YM4/6VrNJpMIi6Sx6QfleRPy4zD7Zb6Ys56fK/MZXuJpVkflrmOiV6h2JiG8MXHUvsLtM7wbuGZjvClfrnMxX9N8PfBr4vaSDZd4XgK8CeyVdAzwJXAmucLXuytS3/prR70MALlvlNq5wtc7xJ/hmSQ6LWZLDYpbksJglOSxmSYvX7tKAlpCxeLyN4VcWsySHxSzJYTFLcljMkhwWsySHxSzJYTFLcljMkhwWsySHxSzJYTFLcljMkiapb71R0tOSDpbTzoHbuL7VOifzreN+fesjks4BfitpX7nuloi4aXDhofrW84EHJF3s0gpru0xhxQrQb558QVK/vnU1L9e3Ak9I6te3PjiF8U5Edf74aoPvu26zWreY89f/J6lvBbhe0iFJdw606KfqW83GNe8nnEnqW28DLgK203vlubm/6Iibv+IpwV3HNq55v7Kk/qfkqPrWiDg5cP0dwH3lYqq+NSJuB24HWFpamsmjMMsHe/hZcN4bepq6vG5rqVzf2u85Lq4ADpdp17daJ01S33q1pO30DrGOA9eB61utuyapb71/jdu4vtU6Z+HaXer6g0pth+0tG3DLhjuWhfu6SxMedBtPU7bZwoWlDk3ZmE3Q5cdiIcPS5Q1q9VnIsIADU6dpPrZN2k4LG5ZpadLGbJJpPC5Ne2wXOiyTboymbUyr10KHxeo1yZNJE5+IFj4sVTdKEzem1Wvhw2LN09QnIoelgqZuzCbq0mPlsNCtDdp2Td4WDsuYmrwxm6orj5nDUnRlg7ZZ07eBwzKGpm/MJuvCY+ewDOjCBrX6OCxDHJj6rPXYtuFxd1iS2rAx22DU49iWxzZTWPFaSb+R9LtS3/rlMn+9pH2Sjpbzcwdu0+r61uGN15aNafXKvLL8E/hIRLyLXkfYDknvA/YA+yNiG7C/XB6ub90B3CppXR2Dt3YafPJp0xPRGcMSPX8vF88qp6BX07pc5i8Dl5fpl+tbI+IJoF/f2ir9jdimjWn1Sr1nkbSu1CCdAvZFxEPA5tKD3O9D3lQWd32rnVFE+56IUu0upfdru6Q3AndLeucai6frW4FrAbZs2ZIZxsxN9hXzeLm5caLGxobvUYvSRglj/jUsIv4K/JLee5GT/VbKcn6qLJaub42IpYhY2rhxY4WhN19EdHJn6q9TF9dtLZm/hm0sryhIeh3wUeCP9Gpad5fFdgP3lGnXty6ARQsK5A7DzgOWy1+0XgXsjYj7JD0I7JV0DfAkcCW4vtW6K1Pfeojeb7IMz38OuGyV27i+1TrHn+CbJTksZkkOi1mSw2KW5LCYJTksZkkOi1mSw2KW5LCYJTksZkkOi1mSw2KW5LCYJTksZkkOi1mSw2KW5LCYJTksZkmT1LfeKOlpSQfLaefAbVpd32o2Sqawol/f+ndJZwG/lvSTct0tEXHT4MJD9a3nAw9IutilFdZ2k9S3rqYT9a1mwyapbwW4XtIhSXcOtOi7vtU6KRWWiHgpIrbTa5e8tNS33gZcRK9ZfwW4uSyerm+VdEDSgdOnT1cavNksVa5vjYiTJUT/Ae7gf4darm+1Tqpc39rvOS6uAA6Xade3WidNUt/6XUnb6R1iHQeuA9e3WndNUt/66TVu4/pW6xx/gm+W5LCYJTksZkkOi1mSw2KW5LCYJTksZkkOi1mSw2KW5LCYJTksZkkOi1mSw2KW5LCYJTksZkkOi1mSw2KW5LCYJTksZkkOi1mSw2KW5LCYJSlirY7vGQ1COg38A3h23mOpwQa8Xm3y1ogYWZHaiLAASDoQEUvzHse0eb26w4dhZkkOi1lSk8Jy+7wHUBOvV0c05j2LWdM16ZXFrNHmHhZJO8qvGh+TtGfe4xlX+YnAU5IOD8xbL2mfpKPl/NyB61rxS86SLpD0C0lHyq9U31Dmt37dKouIuZ2AdcCfgbcBZwO/Ay6Z55gqrMMHgfcAhwfmfR3YU6b3AF8r05eUdXwNcGFZ93XzXodV1us84D1l+hzgT2X8rV+3qqd5v7JcChyLiMcj4l/AXfR+7bg1IuJXwPNDs3cBy2V6Gbh8YH4rfsk5IlYi4pEy/QJwhN4P6bZ+3aqad1i6+svGmyNiBXo7HbCpzG/l+kraSu8HrR6iY+s2jnmHJfXLxh3SuvWV9AbgR8BnI+Jvay06Yl6j121c8w5L6peNW+hk/wdqy/mpMr9V6yvpLHpB+V5E/LjM7sS6VTHvsDwMbJN0oaSzgavo/dpx290L7C7Tu4F7Bua34pecJQn4FnAkIr4xcFXr162yef+FAdhJ7y8tfwa+OO/xVBj/D4AV4N/0nl2vAd4E7AeOlvP1A8t/sazrY8An5z3+NdbrA/QOow4BB8tpZxfWrerJn+CbJc37MMysNRwWsySHxSzJYTFLcljMkhwWsySHxSzJYTFL+i9/fvFsL38pSAAAAABJRU5ErkJggg==\n", 305 | "text/plain": [ 306 | "
" 307 | ] 308 | }, 309 | "metadata": { 310 | "needs_background": "light" 311 | }, 312 | "output_type": "display_data" 313 | }, 314 | { 315 | "name": "stdout", 316 | "output_type": "stream", 317 | "text": [ 318 | "VOCÊ PERDEU!\n" 319 | ] 320 | } 321 | ], 322 | "source": [ 323 | "currentMatch = ticTacToeBoard.copy()\n", 324 | "showImage(currentMatch)\n", 325 | "\n", 326 | "occupiedPositions = [[VAZIO, VAZIO, VAZIO],\n", 327 | " [VAZIO, VAZIO, VAZIO],\n", 328 | " [VAZIO, VAZIO, VAZIO]]\n", 329 | "turno = HUMANO\n", 330 | "jogadas = 0\n", 331 | "while 1:\n", 332 | " if turno == HUMANO:\n", 333 | " print(\"TURNO DO JOGADOR HUMANO.\")\n", 334 | " posX = int(input(\"Informe a posição x da sua jogada:\")) % 3\n", 335 | " posY = int(input(\"Informe a posição y da sua jogada:\")) % 3\n", 336 | " \n", 337 | " while occupiedPositions[posX][posY] != VAZIO:\n", 338 | " print(\"Posição ocupada.\")\n", 339 | " posX = int(input(\"Informe a posição x da sua jogada:\")) % 3\n", 340 | " posY = int(input(\"Informe a posição y da sua jogada:\")) % 3\n", 341 | " \n", 342 | " occupiedPositions[posX][posY] = HUMANO\n", 343 | " drawTriangleInBoard(currentMatch, posX, posY, (0, 0, 255))\n", 344 | " turno = CPU\n", 345 | " \n", 346 | " elif turno == CPU:\n", 347 | " print(\"TURNO DO JOGADOR CPU.\")\n", 348 | " \n", 349 | " import random\n", 350 | " posX, posY = random.randint(0, 2), random.randint(0, 2)\n", 351 | " while occupiedPositions[posX][posY] != VAZIO:\n", 352 | " posX, posY = random.randint(0, 2), random.randint(0, 2)\n", 353 | "\n", 354 | " occupiedPositions[posX][posY] = CPU\n", 355 | " drawRectangleInBoard(currentMatch, posX, posY, (255, 0, 0))\n", 356 | " turno = HUMANO\n", 357 | " \n", 358 | " showImage(currentMatch)\n", 359 | " jogadas += 1\n", 360 | " \n", 361 | " if checkGameOver(occupiedPositions) == EMPATE:\n", 362 | " print(\"EMPATE!\")\n", 363 | " break\n", 364 | " elif checkGameOver(occupiedPositions) == HUMANO:\n", 365 | " print(\"VOCÊ VENCEU!\")\n", 366 | " break\n", 367 | " elif checkGameOver(occupiedPositions) == CPU:\n", 368 | " print(\"VOCÊ PERDEU!\")\n", 369 | " break\n", 370 | " \n", 371 | " #if jogadas == 2:\n", 372 | " # break\n", 373 | "\n", 374 | "#drawRectangleInBoard(currentMatch, 2, 2, (255, 0, 0))\n", 375 | "#drawTriangleInBoard(currentMatch, 2, 1, (0, 0, 255))\n", 376 | "\n", 377 | "#showImage(currentMatch)" 378 | ] 379 | }, 380 | { 381 | "cell_type": "code", 382 | "execution_count": null, 383 | "metadata": {}, 384 | "outputs": [], 385 | "source": [] 386 | } 387 | ], 388 | "metadata": { 389 | "kernelspec": { 390 | "display_name": "Python 3", 391 | "language": "python", 392 | "name": "python3" 393 | }, 394 | "language_info": { 395 | "codemirror_mode": { 396 | "name": "ipython", 397 | "version": 3 398 | }, 399 | "file_extension": ".py", 400 | "mimetype": "text/x-python", 401 | "name": "python", 402 | "nbconvert_exporter": "python", 403 | "pygments_lexer": "ipython3", 404 | "version": "3.7.5" 405 | } 406 | }, 407 | "nbformat": 4, 408 | "nbformat_minor": 4 409 | } 410 | -------------------------------------------------------------------------------- /07_trackbar_brightness_contrast.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import numpy as np\n", 10 | "import cv2\n", 11 | "import time\n", 12 | "from tqdm import tqdm\n", 13 | "\n", 14 | "ESCAPE_KEY_ASCII = 27\n", 15 | "\n", 16 | "def onChange(value):\n", 17 | " #print(\"valor alterado\", value)\n", 18 | " pass\n", 19 | "\n", 20 | "#imagem carregada e sua cópia\n", 21 | "img = cv2.imread(\"pirula.jpg\")\n", 22 | "copyimg = img.copy()\n", 23 | "\n", 24 | "#cria janela gráfica para inserir a imagem\n", 25 | "windowTitle = \"Ajuste de Brilho e Contraste\"\n", 26 | "cv2.namedWindow(windowTitle)\n", 27 | "\n", 28 | "#cria trackbar\n", 29 | "cv2.createTrackbar(\"contraste\", windowTitle, 100, 100, onChange)\n", 30 | "cv2.createTrackbar(\"brilho\", windowTitle, 0, 200, onChange)\n", 31 | "\n", 32 | "before_contrast = 100\n", 33 | "update_contrast = False\n", 34 | "\n", 35 | "before_brightness = 0\n", 36 | "update_brightness = False\n", 37 | "\n", 38 | "counter_time = 0\n", 39 | "\n", 40 | "while True:\n", 41 | " current_contrast = cv2.getTrackbarPos(\"contraste\", windowTitle)\n", 42 | " current_brightness = cv2.getTrackbarPos(\"brilho\", windowTitle)\n", 43 | " \n", 44 | " #valor de contraste do trackbar foi alterado pelo usuário\n", 45 | " if before_contrast != current_contrast:\n", 46 | " update_contrast = True\n", 47 | " counter_time = time.time()\n", 48 | " before_contrast = current_contrast\n", 49 | " \n", 50 | " #valor de brilho do trackbar foi alterado pelo usuário\n", 51 | " if before_brightness != current_brightness:\n", 52 | " update_brightness = True\n", 53 | " counter_time = time.time()\n", 54 | " before_brightness = current_brightness\n", 55 | "\n", 56 | " #se tiver passado 1 segundo desde que o usuário mexeu em algum trackbar\n", 57 | " if time.time() - counter_time > 1:\n", 58 | " #se tiver sido marcado que é pra atualizar contraste ou brilho\n", 59 | " if update_contrast == True or update_brightness == True:\n", 60 | " \n", 61 | " #fazemos uma cópia da imagem original\n", 62 | " '''\n", 63 | " copyimg = img.copy()\n", 64 | "\n", 65 | " height, width, channels = img.shape\n", 66 | "\n", 67 | " #para cada informação de cor, de cada pixel, atualizamos o contraste\n", 68 | " for y in tqdm(range(height)):\n", 69 | " for x in range(width):\n", 70 | " for c in range(channels):\n", 71 | " newColorValue = copyimg[y][x][c] * (current_contrast / 100) + current_brightness\n", 72 | " copyimg[y][x][c] = np.clip(newColorValue, 0, 255)\n", 73 | " '''\n", 74 | " copyimg = cv2.convertScaleAbs(img, alpha=current_contrast / 100, beta=current_brightness)\n", 75 | "\n", 76 | " update_contrast = False\n", 77 | " update_brightness = False\n", 78 | " \n", 79 | " cv2.imshow(windowTitle, copyimg)\n", 80 | " \n", 81 | " keyPressed = cv2.waitKey(1) & 0xFF #cv2.waitKey(1) & 111111\n", 82 | " if keyPressed == ESCAPE_KEY_ASCII:\n", 83 | " break\n", 84 | " \n", 85 | "cv2.destroyAllWindows()" 86 | ] 87 | }, 88 | { 89 | "cell_type": "code", 90 | "execution_count": null, 91 | "metadata": {}, 92 | "outputs": [], 93 | "source": [] 94 | } 95 | ], 96 | "metadata": { 97 | "kernelspec": { 98 | "display_name": "Python 3", 99 | "language": "python", 100 | "name": "python3" 101 | }, 102 | "language_info": { 103 | "codemirror_mode": { 104 | "name": "ipython", 105 | "version": 3 106 | }, 107 | "file_extension": ".py", 108 | "mimetype": "text/x-python", 109 | "name": "python", 110 | "nbconvert_exporter": "python", 111 | "pygments_lexer": "ipython3", 112 | "version": "3.8.6" 113 | } 114 | }, 115 | "nbformat": 4, 116 | "nbformat_minor": 4 117 | } 118 | -------------------------------------------------------------------------------- /08_tracking_with_trackbar.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import numpy as np\n", 10 | "import cv2\n", 11 | "\n", 12 | "ESC_KEY = 27\n", 13 | "\n", 14 | "cap = cv2.VideoCapture(1)" 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 2, 20 | "metadata": {}, 21 | "outputs": [], 22 | "source": [ 23 | "def setLimitsOfTrackbar():\n", 24 | " hue = {}\n", 25 | " hue[\"min\"] = cv2.getTrackbarPos(\"Min Hue\", trackbarWindow)\n", 26 | " hue[\"max\"] = cv2.getTrackbarPos(\"Max Hue\", trackbarWindow)\n", 27 | " \n", 28 | " if hue[\"min\"] > hue[\"max\"]:\n", 29 | " cv2.setTrackbarPos(\"Max Hue\", trackbarWindow, hue[\"min\"])\n", 30 | " hue[\"max\"] = cv2.getTrackbarPos(\"Max Hue\", trackbarWindow)\n", 31 | " \n", 32 | " sat = {}\n", 33 | " sat[\"min\"] = cv2.getTrackbarPos(\"Min Saturation\", trackbarWindow)\n", 34 | " sat[\"max\"] = cv2.getTrackbarPos(\"Max Saturation\", trackbarWindow)\n", 35 | " \n", 36 | " if sat[\"min\"] > sat[\"max\"]:\n", 37 | " cv2.setTrackbarPos(\"Max Saturation\", trackbarWindow, sat[\"min\"])\n", 38 | " sat[\"max\"] = cv2.getTrackbarPos(\"Max Saturation\", trackbarWindow)\n", 39 | "\n", 40 | " val = {}\n", 41 | " val[\"min\"] = cv2.getTrackbarPos(\"Min Value\", trackbarWindow)\n", 42 | " val[\"max\"] = cv2.getTrackbarPos(\"Max Value\", trackbarWindow)\n", 43 | " \n", 44 | " if val[\"min\"] > val[\"max\"]:\n", 45 | " cv2.setTrackbarPos(\"Max Value\", trackbarWindow, val[\"min\"])\n", 46 | " val[\"max\"] = cv2.getTrackbarPos(\"Max Value\", trackbarWindow)\n", 47 | " \n", 48 | " return hue, sat, val" 49 | ] 50 | }, 51 | { 52 | "cell_type": "code", 53 | "execution_count": 3, 54 | "metadata": {}, 55 | "outputs": [], 56 | "source": [ 57 | "def computeTracking(frame, hue, sat, val):\n", 58 | " \n", 59 | " #transforma a imagem de RGB para HSV\n", 60 | " hsvImage = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)\n", 61 | " \n", 62 | " #definir os intervalos de cores que vão aparecer na imagem final\n", 63 | " lowerColor = np.array([hue['min'], sat[\"min\"], val[\"min\"]])\n", 64 | " upperColor = np.array([hue['max'], sat[\"max\"], val[\"max\"]])\n", 65 | " \n", 66 | " #marcador pra saber se o pixel pertence ao intervalo ou não\n", 67 | " mask = cv2.inRange(hsvImage, lowerColor, upperColor)\n", 68 | " \n", 69 | " #aplica máscara que \"deixa passar\" pixels pertencentes ao intervalo, como filtro\n", 70 | " result = cv2.bitwise_and(frame, frame, mask = mask)\n", 71 | " \n", 72 | " #aplica limiarização\n", 73 | " gray = cv2.cvtColor(result, cv2.COLOR_BGR2GRAY)\n", 74 | " _,gray = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)\n", 75 | " \n", 76 | " #encontra pontos que circundam regiões conexas (contour)\n", 77 | " contours, hierarchy = cv2.findContours(gray, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)\n", 78 | " \n", 79 | " #se existir contornos \n", 80 | " if contours:\n", 81 | " #retornando a área do primeiro grupo de pixels brancos\n", 82 | " maxArea = cv2.contourArea(contours[0])\n", 83 | " contourMaxAreaId = 0\n", 84 | " i = 0\n", 85 | " \n", 86 | " #para cada grupo de pixels branco\n", 87 | " for cnt in contours:\n", 88 | " #procura o grupo com a maior área\n", 89 | " if maxArea < cv2.contourArea(cnt):\n", 90 | " maxArea = cv2.contourArea(cnt)\n", 91 | " contourMaxAreaId = i\n", 92 | " i += 1\n", 93 | " \n", 94 | " #achei o contorno com maior área em pixels\n", 95 | " cntMaxArea = contours[contourMaxAreaId]\n", 96 | " \n", 97 | " #retorna um retângulo que envolve o contorno em questão\n", 98 | " xRect, yRect, wRect, hRect = cv2.boundingRect(cntMaxArea)\n", 99 | " \n", 100 | " #desenha caixa envolvente com espessura 3\n", 101 | " cv2.rectangle(frame, (xRect, yRect), (xRect + wRect, yRect + hRect), (0, 0, 255), 2)\n", 102 | " \n", 103 | " return frame, gray" 104 | ] 105 | }, 106 | { 107 | "cell_type": "code", 108 | "execution_count": 4, 109 | "metadata": {}, 110 | "outputs": [], 111 | "source": [ 112 | "trackbarWindow = \"trackbar window\"\n", 113 | "cv2.namedWindow(trackbarWindow)\n", 114 | "\n", 115 | "def onChange(val):\n", 116 | " return\n", 117 | "\n", 118 | "cv2.createTrackbar(\"Min Hue\", trackbarWindow, 0, 255, onChange)\n", 119 | "cv2.createTrackbar(\"Max Hue\", trackbarWindow, 255, 255, onChange)\n", 120 | "\n", 121 | "cv2.createTrackbar(\"Min Saturation\", trackbarWindow, 0, 255, onChange)\n", 122 | "cv2.createTrackbar(\"Max Saturation\", trackbarWindow, 255, 255, onChange)\n", 123 | "\n", 124 | "cv2.createTrackbar(\"Min Value\", trackbarWindow, 0, 255, onChange)\n", 125 | "cv2.createTrackbar(\"Max Value\", trackbarWindow, 255, 255, onChange)\n", 126 | "\n", 127 | "min_hue = cv2.getTrackbarPos(\"Min Hue\", trackbarWindow)\n", 128 | "max_hue = cv2.getTrackbarPos(\"Max Hue\", trackbarWindow)\n", 129 | "\n", 130 | "min_sat = cv2.getTrackbarPos(\"Min Saturation\", trackbarWindow)\n", 131 | "max_sat = cv2.getTrackbarPos(\"Max Saturation\", trackbarWindow)\n", 132 | "\n", 133 | "min_val = cv2.getTrackbarPos(\"Min Value\", trackbarWindow)\n", 134 | "max_val = cv2.getTrackbarPos(\"Max Value\", trackbarWindow)\n", 135 | "\n", 136 | "while True:\n", 137 | " success, frame = cap.read()\n", 138 | " \n", 139 | " hue, sat, val = setLimitsOfTrackbar()\n", 140 | " frame, gray = computeTracking(frame, hue, sat, val)\n", 141 | " \n", 142 | " cv2.imshow(\"mascara\", gray)\n", 143 | " cv2.imshow(\"webcam\", frame)\n", 144 | "\n", 145 | " if cv2.waitKey(1) & 0xFF == ord('q') or 0xFF == ESC_KEY:\n", 146 | " break\n", 147 | " \n", 148 | "cap.release()\n", 149 | "cv2.destroyAllWindows()" 150 | ] 151 | }, 152 | { 153 | "cell_type": "code", 154 | "execution_count": null, 155 | "metadata": {}, 156 | "outputs": [], 157 | "source": [] 158 | } 159 | ], 160 | "metadata": { 161 | "kernelspec": { 162 | "display_name": "Python 3", 163 | "language": "python", 164 | "name": "python3" 165 | }, 166 | "language_info": { 167 | "codemirror_mode": { 168 | "name": "ipython", 169 | "version": 3 170 | }, 171 | "file_extension": ".py", 172 | "mimetype": "text/x-python", 173 | "name": "python", 174 | "nbconvert_exporter": "python", 175 | "pygments_lexer": "ipython3", 176 | "version": "3.7.5" 177 | } 178 | }, 179 | "nbformat": 4, 180 | "nbformat_minor": 4 181 | } 182 | -------------------------------------------------------------------------------- /15_3_contours.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 2, 6 | "id": "3a71339c-7eb0-4845-845e-d93ecd7587f8", 7 | "metadata": {}, 8 | "outputs": [ 9 | { 10 | "name": "stdout", 11 | "output_type": "stream", 12 | "text": [ 13 | "Posicione sua mão fora da câmera e pressione 's' para capturar o fundo.\n", 14 | "Pressione 'q' para sair do jogo.\n" 15 | ] 16 | } 17 | ], 18 | "source": [ 19 | "import cv2\n", 20 | "import numpy as np\n", 21 | "import time\n", 22 | "import random\n", 23 | "\n", 24 | "# ============================================\n", 25 | "# 1. Configurações e Inicializações\n", 26 | "# ============================================\n", 27 | "\n", 28 | "# Definir a área mínima aceitável para o convex hull\n", 29 | "MIN_HULL_AREA = 1000 # Ajuste esse valor conforme necessário\n", 30 | "\n", 31 | "# Caminho para o sprite\n", 32 | "FOLDER = 'pokemon_dataset/images/'\n", 33 | "POKEMON = 'abra'\n", 34 | "\n", 35 | "def setup_webcam(index=1):\n", 36 | " \"\"\"Inicializa a captura de vídeo da webcam.\"\"\"\n", 37 | " cap = cv2.VideoCapture(index)\n", 38 | " if not cap.isOpened():\n", 39 | " print(\"Erro ao abrir a webcam\")\n", 40 | " exit()\n", 41 | " return cap\n", 42 | "\n", 43 | "def create_trackbars():\n", 44 | " \"\"\"Cria uma janela com trackbars para ajuste de HSV.\"\"\"\n", 45 | " def nothing(x):\n", 46 | " pass\n", 47 | " \n", 48 | " cv2.namedWindow('Trackbars')\n", 49 | " cv2.createTrackbar('H Min', 'Trackbars', 0, 179, nothing)\n", 50 | " cv2.createTrackbar('H Max', 'Trackbars', 179, 179, nothing)\n", 51 | " cv2.createTrackbar('S Min', 'Trackbars', 0, 255, nothing)\n", 52 | " cv2.createTrackbar('S Max', 'Trackbars', 255, 255, nothing)\n", 53 | " cv2.createTrackbar('V Min', 'Trackbars', 0, 255, nothing)\n", 54 | " cv2.createTrackbar('V Max', 'Trackbars', 255, 255, nothing)\n", 55 | "\n", 56 | "def load_sprite(folder, pokemon):\n", 57 | " \"\"\"Carrega a imagem do sprite com canal alfa.\"\"\"\n", 58 | " sprite = cv2.imread(f\"{folder}{pokemon}.png\", cv2.IMREAD_UNCHANGED)\n", 59 | " if sprite is None:\n", 60 | " print(f\"Erro ao carregar o sprite: {folder}{pokemon}.png\")\n", 61 | " exit()\n", 62 | " return sprite\n", 63 | "\n", 64 | "# ============================================\n", 65 | "# 2. Captura de Fundo\n", 66 | "# ============================================\n", 67 | "\n", 68 | "def capture_background(cap):\n", 69 | " \"\"\"Captura uma imagem de fundo quando o usuário pressiona 's'.\"\"\"\n", 70 | " print(\"Posicione sua mão fora da câmera e pressione 's' para capturar o fundo.\")\n", 71 | " print(\"Pressione 'q' para sair do jogo.\")\n", 72 | " while True:\n", 73 | " success, background = cap.read()\n", 74 | " if not success:\n", 75 | " print(\"Falha ao capturar o frame de fundo.\")\n", 76 | " continue\n", 77 | " cv2.imshow('Captura de Fundo', background)\n", 78 | " key = cv2.waitKey(1) & 0xFF\n", 79 | " if key == ord('s'):\n", 80 | " break\n", 81 | " elif key == ord('q'):\n", 82 | " cap.release()\n", 83 | " cv2.destroyAllWindows()\n", 84 | " exit()\n", 85 | " cv2.destroyWindow('Captura de Fundo')\n", 86 | " return background\n", 87 | "\n", 88 | "# ============================================\n", 89 | "# 3. Processamento de Frames\n", 90 | "# ============================================\n", 91 | "\n", 92 | "def get_hsv_values():\n", 93 | " \"\"\"Obtém os valores atuais das trackbars para HSV.\"\"\"\n", 94 | " h_min = cv2.getTrackbarPos('H Min', 'Trackbars')\n", 95 | " h_max = cv2.getTrackbarPos('H Max', 'Trackbars')\n", 96 | " s_min = cv2.getTrackbarPos('S Min', 'Trackbars')\n", 97 | " s_max = cv2.getTrackbarPos('S Max', 'Trackbars')\n", 98 | " v_min = cv2.getTrackbarPos('V Min', 'Trackbars')\n", 99 | " v_max = cv2.getTrackbarPos('V Max', 'Trackbars')\n", 100 | " return h_min, h_max, s_min, s_max, v_min, v_max\n", 101 | "\n", 102 | "def create_skin_mask(frame, background, hsv_limits):\n", 103 | " \"\"\"Cria uma máscara para a cor da pele baseada nos limites de HSV.\"\"\"\n", 104 | " # Subtrair o fundo do frame atual\n", 105 | " fg_mask = cv2.absdiff(background, frame)\n", 106 | " \n", 107 | " # Converter a foreground mask para Grayscale para melhor visualização\n", 108 | " fg_mask_gray = cv2.cvtColor(fg_mask, cv2.COLOR_BGR2GRAY)\n", 109 | " \n", 110 | " # Exibir a subtração de fundo em grayscale para fins de explicação\n", 111 | " cv2.imshow('Foreground Mask', fg_mask_gray) # Janela atualizada\n", 112 | " \n", 113 | " # Converter o frame para o espaço de cor HSV\n", 114 | " hsv = cv2.cvtColor(fg_mask, cv2.COLOR_BGR2HSV)\n", 115 | " \n", 116 | " # Definir os limites para a cor da pele em HSV\n", 117 | " lower_skin = np.array([hsv_limits[0], hsv_limits[2], hsv_limits[4]], dtype=np.uint8)\n", 118 | " upper_skin = np.array([hsv_limits[1], hsv_limits[3], hsv_limits[5]], dtype=np.uint8)\n", 119 | " \n", 120 | " # Criar uma máscara para a cor da pele\n", 121 | " skin_mask = cv2.inRange(hsv, lower_skin, upper_skin)\n", 122 | " \n", 123 | " # Aplicar operações morfológicas para limpar a máscara\n", 124 | " kernel = np.ones((3, 3), np.uint8)\n", 125 | " skin_mask = cv2.erode(skin_mask, kernel, iterations=2)\n", 126 | " skin_mask = cv2.dilate(skin_mask, kernel, iterations=2)\n", 127 | " \n", 128 | " return skin_mask\n", 129 | "\n", 130 | "# ============================================\n", 131 | "# 4. Detecção de Contornos e Convex Hull\n", 132 | "# ============================================\n", 133 | "\n", 134 | "def find_largest_convex_hull(skin_mask):\n", 135 | " \"\"\"Encontra o maior contorno e calcula seu convex hull.\"\"\"\n", 136 | " contours, _ = cv2.findContours(skin_mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)\n", 137 | " if not contours:\n", 138 | " return None, 0, False\n", 139 | " largest_contour = max(contours, key=cv2.contourArea)\n", 140 | " hull = cv2.convexHull(largest_contour)\n", 141 | " hull_area = cv2.contourArea(hull)\n", 142 | " hull_valid = hull_area >= MIN_HULL_AREA\n", 143 | " return hull, hull_area, hull_valid\n", 144 | "\n", 145 | "# ============================================\n", 146 | "# 5. Atualização do Sprite\n", 147 | "# ============================================\n", 148 | "\n", 149 | "def update_sprite_position(sprite_pos, sprite_speed, frame_dimensions, sprite_width, sprite_height):\n", 150 | " \"\"\"Atualiza a posição do sprite e verifica colisões com as bordas.\"\"\"\n", 151 | " sprite_x, sprite_y = sprite_pos\n", 152 | " speed_x, speed_y = sprite_speed\n", 153 | " sprite_x += speed_x\n", 154 | " sprite_y += speed_y\n", 155 | "\n", 156 | " frame_width, frame_height = frame_dimensions\n", 157 | "\n", 158 | " # Verificar colisão com as bordas\n", 159 | " if sprite_x < 0 or sprite_x + sprite_width > frame_width:\n", 160 | " speed_x *= -1\n", 161 | " if sprite_y < 0 or sprite_y + sprite_height > frame_height:\n", 162 | " speed_y *= -1\n", 163 | "\n", 164 | " sprite_x = max(0, min(sprite_x, frame_width - sprite_width))\n", 165 | " sprite_y = max(0, min(sprite_y, frame_height - sprite_height))\n", 166 | "\n", 167 | " return (sprite_x, sprite_y), (speed_x, speed_y)\n", 168 | "\n", 169 | "# ============================================\n", 170 | "# 6. Renderização\n", 171 | "# ============================================\n", 172 | "\n", 173 | "def render_sprite(frame, sprite, position):\n", 174 | " \"\"\"Desenha o sprite na posição especificada com transparência.\"\"\"\n", 175 | " sprite_x, sprite_y = position\n", 176 | " sprite_overlay = sprite[:, :, :3]\n", 177 | " alpha_mask = sprite[:, :, 3] / 255.0\n", 178 | " for c in range(3):\n", 179 | " frame[sprite_y:sprite_y + sprite.shape[0],\n", 180 | " sprite_x:sprite_x + sprite.shape[1], c] = \\\n", 181 | " sprite_overlay[:, :, c] * alpha_mask + \\\n", 182 | " frame[sprite_y:sprite_y + sprite.shape[0],\n", 183 | " sprite_x:sprite_x + sprite.shape[1], c] * (1 - alpha_mask)\n", 184 | " return frame\n", 185 | "\n", 186 | "# ============================================\n", 187 | "# 7. Função Principal\n", 188 | "# ============================================\n", 189 | "\n", 190 | "def main():\n", 191 | " # Inicializações\n", 192 | " cap = setup_webcam()\n", 193 | " create_trackbars()\n", 194 | " sprite = load_sprite(FOLDER, POKEMON)\n", 195 | " frame_width, frame_height = 640, 480 # Ajuste conforme necessário\n", 196 | " sprite_width, sprite_height = sprite.shape[1], sprite.shape[0]\n", 197 | " \n", 198 | " # Inicializar a posição e velocidade do sprite\n", 199 | " sprite_x = random.randint(0, frame_width - sprite_width)\n", 200 | " sprite_y = random.randint(0, frame_height - sprite_height)\n", 201 | " sprite_speed_x = random.choice([-5, 5])\n", 202 | " sprite_speed_y = random.choice([-5, 5])\n", 203 | "\n", 204 | " score = 0\n", 205 | " game_started = False\n", 206 | " prev_time = time.time()\n", 207 | "\n", 208 | " # Capturar a imagem de fundo\n", 209 | " background = capture_background(cap)\n", 210 | "\n", 211 | " while True:\n", 212 | " ret, frame = cap.read()\n", 213 | " if not ret:\n", 214 | " print(\"Falha ao capturar o frame\")\n", 215 | " break\n", 216 | "\n", 217 | " # Redimensionar frame se necessário\n", 218 | " frame = cv2.resize(frame, (frame_width, frame_height))\n", 219 | "\n", 220 | " # Processamento de frame\n", 221 | " hsv_limits = get_hsv_values()\n", 222 | " skin_mask = create_skin_mask(frame, background, hsv_limits)\n", 223 | "\n", 224 | " # Detecção de convex hull\n", 225 | " hull, hull_area, hull_valid = find_largest_convex_hull(skin_mask)\n", 226 | " if hull_valid:\n", 227 | " cv2.drawContours(frame, [hull], -1, (0, 255, 0), 2)\n", 228 | "\n", 229 | " # Estado do jogo\n", 230 | " if not game_started:\n", 231 | " cv2.putText(frame, \"Aperte 'n' para iniciar o jogo\", (50, 240),\n", 232 | " cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2, cv2.LINE_AA)\n", 233 | " cv2.imshow('Webcam - Convex Hull', frame)\n", 234 | " cv2.imshow('Webcam - Threshold', skin_mask)\n", 235 | " key = cv2.waitKey(1) & 0xFF\n", 236 | " if key == ord('n'):\n", 237 | " game_started = True\n", 238 | " elif key == ord('q'):\n", 239 | " break\n", 240 | " continue\n", 241 | "\n", 242 | " # Atualizar posição do sprite\n", 243 | " (sprite_x, sprite_y), (sprite_speed_x, sprite_speed_y) = update_sprite_position(\n", 244 | " (sprite_x, sprite_y),\n", 245 | " (sprite_speed_x, sprite_speed_y),\n", 246 | " (frame_width, frame_height),\n", 247 | " sprite_width,\n", 248 | " sprite_height\n", 249 | " )\n", 250 | "\n", 251 | " # Verificar colisão com o convex hull\n", 252 | " if hull_valid:\n", 253 | " for point in hull:\n", 254 | " px, py = point[0]\n", 255 | " if sprite_x < px < sprite_x + sprite_width and sprite_y < py < sprite_y + sprite_height:\n", 256 | " score += 1\n", 257 | " # Resetar a posição e velocidade do sprite\n", 258 | " sprite_x = random.randint(0, frame_width - sprite_width)\n", 259 | " sprite_y = random.randint(0, frame_height - sprite_height)\n", 260 | " sprite_speed_x = random.choice([-5, 5])\n", 261 | " sprite_speed_y = random.choice([-5, 5])\n", 262 | " break\n", 263 | "\n", 264 | " # Renderizar sprite\n", 265 | " frame = render_sprite(frame, sprite, (sprite_x, sprite_y))\n", 266 | "\n", 267 | " # Calcular FPS\n", 268 | " curr_time = time.time()\n", 269 | " fps = 1 / (curr_time - prev_time) if (curr_time - prev_time) > 0 else 0\n", 270 | " prev_time = curr_time\n", 271 | "\n", 272 | " # Adicionar informações na tela\n", 273 | " cv2.putText(frame, f'FPS: {int(fps)}', (10, 30),\n", 274 | " cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 2, cv2.LINE_AA)\n", 275 | " if hull_valid:\n", 276 | " cv2.putText(frame, f'Area: {int(hull_area)}', (10, 50),\n", 277 | " cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 2, cv2.LINE_AA)\n", 278 | " else:\n", 279 | " cv2.putText(frame, 'Mao nao detectada ou muito pequena', (10, 50),\n", 280 | " cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2, cv2.LINE_AA)\n", 281 | " cv2.putText(frame, f'Score: {int(score)}', (10, 70),\n", 282 | " cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 2, cv2.LINE_AA)\n", 283 | "\n", 284 | " # Exibir frames\n", 285 | " cv2.imshow('Webcam - Convex Hull', frame)\n", 286 | " cv2.imshow('Webcam - Threshold', skin_mask)\n", 287 | "\n", 288 | " # Controle de saída\n", 289 | " key = cv2.waitKey(1) & 0xFF\n", 290 | " if key == ord('q'):\n", 291 | " break\n", 292 | "\n", 293 | " # Encerramento\n", 294 | " cap.release()\n", 295 | " cv2.destroyAllWindows()\n", 296 | "\n", 297 | "if __name__ == \"__main__\":\n", 298 | " main()\n" 299 | ] 300 | } 301 | ], 302 | "metadata": { 303 | "kernelspec": { 304 | "display_name": "ep_15", 305 | "language": "python", 306 | "name": "ep_15" 307 | }, 308 | "language_info": { 309 | "codemirror_mode": { 310 | "name": "ipython", 311 | "version": 3 312 | }, 313 | "file_extension": ".py", 314 | "mimetype": "text/x-python", 315 | "name": "python", 316 | "nbconvert_exporter": "python", 317 | "pygments_lexer": "ipython3", 318 | "version": "3.9.9" 319 | } 320 | }, 321 | "nbformat": 4, 322 | "nbformat_minor": 5 323 | } 324 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Python e OpenCV4 2 | 3 | ## Vídeos e textos 4 | 5 | O objetivo desse repositório é apresentar uma série de exemplos ensinando o básico e fundamental de OpenCV por meio do Python. É esperado que você já tenha noções de programação com Python para melhor aproveitamento. 6 | 7 | | Índice | Tópico | Vídeo | Texto no Blog | 8 | | -------|:------------------------------------:|:------:|:------------:| 9 | | 1 | Criação de projeto local e em Google Colab; Carregar e salvar imagens; | [![Vídeo 01 da série de Python & OpenCV do canal Universo Discreto](https://img.youtube.com/vi/oAH_GJclePY/mqdefault.jpg)](http://www.youtube.com/watch?v=oAH_GJclePY) | [Clique aqui](https://universodiscreto.com/2020/02/13/instalando-e-criando-seu-primeiro-projeto-python-e-opencv4-00/)| 10 | | 2 | Transformar imagens em tons de cinza ; Manipular pixels ; Extrair região de interesse (crop) | [![Vídeo 02 da série de Python & OpenCV do canal Universo Discreto](https://img.youtube.com/vi/mW-PmvvzXP8/mqdefault.jpg)](http://www.youtube.com/watch?v=mW-PmvvzXP8) | [Clique aqui](https://universodiscreto.com/2020/02/16/operacoes-basicas-envolvendo-imagens-python-e-opencv4-01/)| 11 | | Live 1 | Manipulação de imagens e vídeos ; Redimensionamento de imagens ; Sobreposição de imagens | [![Live 1 de Python & OpenCV do canal Universo Discreto](https://img.youtube.com/vi/8TOH40sq-C0/mqdefault.jpg)](http://www.youtube.com/watch?v=8TOH40sq-C0) | Não disponível no momento | 12 | | 3 | Trabalhando com Grids de imagens ; Padding (borda de imagem) | [![Vídeo 03 da série de Python & OpenCV do canal Universo Discreto](https://img.youtube.com/vi/U35qns3LvvI/mqdefault.jpg)](https://www.youtube.com/watch?v=U35qns3LvvI) | Não disponível no momento | 13 | | Live 2 | Detecção de Faces e Reconhecimento de Faces | [![Live 2 de Python & OpenCV do canal Universo Discreto](https://img.youtube.com/vi/t9Et8YwKHgU/mqdefault.jpg)](https://www.youtube.com/watch?v=t9Et8YwKHgU) | Não disponível no momento | 14 | | 4 | Soma de Imagens ; Blending (Transparência) | [![Vídeo 04 da série de Python & OpenCV do canal Universo Discreto](https://img.youtube.com/vi/60k962jJAmE/mqdefault.jpg)](http://www.youtube.com/watch?v=60k962jJAmE) | Não disponível no momento | 15 | | 5 | Ferramentas de Desenho (Círculo e Elipse) | [![Vídeo 05 da série de Python & OpenCV do canal Universo Discreto](https://img.youtube.com/vi/A652qZ9r9GY/mqdefault.jpg)](http://www.youtube.com/watch?v=A652qZ9r9GY) | Não disponível no momento | 16 | | 6 | Ferramentas de Desenho (Linha, Retângulo, Polígono) | [![Vídeo 06 da série de Python & OpenCV do canal Universo Discreto](https://img.youtube.com/vi/LUICgtok8QE/mqdefault.jpg)](http://www.youtube.com/watch?v=LUICgtok8QE) | Não disponível no momento | 17 | | 7 | Trackbar (Interface Gráfica), Brilho, Contraste | [![Vídeo 07 da série de Python & OpenCV do canal Universo Discreto](https://img.youtube.com/vi/OTiy8knQjJs/mqdefault.jpg)](http://www.youtube.com/watch?v=OTiy8knQjJs) | Não disponível no momento | 18 | | 8 | Trackbar e Tracking | [![Vídeo 08 da série de Python & OpenCV do canal Universo Discreto](https://img.youtube.com/vi/NxyY3JBWoR4/mqdefault.jpg)](http://www.youtube.com/watch?v=NxyY3JBWoR4) | Não disponível no momento | 19 | 20 | ## Notebooks (Google Colab) 21 | 22 | 1. [Carregar imagens no colab e tornar a imagem em tons de cinza](https://colab.research.google.com/drive/12F30VRoCQnNEowMZDtymmh8aNIK5LMq7) 23 | 2. [Sobre canais de cor, manipulação de pixels e crop](https://colab.research.google.com/drive/18DTjxpA5ahDaBZUWxkSUu6ZgkqvdkFt0) 24 | 3. [Trabalhando com vídeos e sobreposição de imagens](https://colab.research.google.com/drive/1sQAxhv5nIWDvwt82osa2x41zVtUFyx1O) 25 | 4. [Grids de Imagens e Padding](https://colab.research.google.com/drive/11fEJgRn8-qx6lWH9Ewj7A0Dzt14k4PUr?authuser=1#scrollTo=JYiG-v-a1nMA) 26 | -------------------------------------------------------------------------------- /ada.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/ada.jpg -------------------------------------------------------------------------------- /audi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/audi.jpg -------------------------------------------------------------------------------- /barco.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/barco.jpg -------------------------------------------------------------------------------- /base_mama/IR_0089.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0089.jpg -------------------------------------------------------------------------------- /base_mama/IR_0100.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0100.jpg -------------------------------------------------------------------------------- /base_mama/IR_0106.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0106.jpg -------------------------------------------------------------------------------- /base_mama/IR_0129.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0129.jpg -------------------------------------------------------------------------------- /base_mama/IR_0141.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0141.jpg -------------------------------------------------------------------------------- /base_mama/IR_0149.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0149.jpg -------------------------------------------------------------------------------- /base_mama/IR_0159.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0159.jpg -------------------------------------------------------------------------------- /base_mama/IR_0207.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0207.jpg -------------------------------------------------------------------------------- /base_mama/IR_0213.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0213.jpg -------------------------------------------------------------------------------- /base_mama/IR_0219.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0219.jpg -------------------------------------------------------------------------------- /base_mama/IR_0225.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0225.jpg -------------------------------------------------------------------------------- /base_mama/IR_0414.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0414.jpg -------------------------------------------------------------------------------- /base_mama/IR_0432.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0432.jpg -------------------------------------------------------------------------------- /base_mama/IR_0438.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0438.jpg -------------------------------------------------------------------------------- /base_mama/IR_0446.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0446.jpg -------------------------------------------------------------------------------- /base_mama/IR_0614.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0614.jpg -------------------------------------------------------------------------------- /base_mama/IR_0622.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0622.jpg -------------------------------------------------------------------------------- /base_mama/IR_0637.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0637.jpg -------------------------------------------------------------------------------- /base_mama/IR_0706.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0706.jpg -------------------------------------------------------------------------------- /base_mama/IR_0716.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0716.jpg -------------------------------------------------------------------------------- /base_mama/IR_0729.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0729.jpg -------------------------------------------------------------------------------- /base_mama/IR_0737.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0737.jpg -------------------------------------------------------------------------------- /base_mama/IR_0747.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0747.jpg -------------------------------------------------------------------------------- /base_mama/IR_0756.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0756.jpg -------------------------------------------------------------------------------- /base_mama/IR_0768.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0768.jpg -------------------------------------------------------------------------------- /base_mama/IR_0777.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0777.jpg -------------------------------------------------------------------------------- /base_mama/IR_0787.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0787.jpg -------------------------------------------------------------------------------- /base_mama/IR_0805.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0805.jpg -------------------------------------------------------------------------------- /base_mama/IR_0819.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0819.jpg -------------------------------------------------------------------------------- /base_mama/IR_0836.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0836.jpg -------------------------------------------------------------------------------- /base_mama/IR_0849.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0849.jpg -------------------------------------------------------------------------------- /base_mama/IR_0860.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0860.jpg -------------------------------------------------------------------------------- /base_mama/IR_0861.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0861.jpg -------------------------------------------------------------------------------- /base_mama/IR_0875.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0875.jpg -------------------------------------------------------------------------------- /base_mama/IR_0886.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0886.jpg -------------------------------------------------------------------------------- /base_mama/IR_0899.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0899.jpg -------------------------------------------------------------------------------- /base_mama/IR_0947.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0947.jpg -------------------------------------------------------------------------------- /base_mama/IR_0965.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0965.jpg -------------------------------------------------------------------------------- /base_mama/IR_0968.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0968.jpg -------------------------------------------------------------------------------- /base_mama/IR_0973.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0973.jpg -------------------------------------------------------------------------------- /base_mama/IR_0982.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0982.jpg -------------------------------------------------------------------------------- /base_mama/IR_0990.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0990.jpg -------------------------------------------------------------------------------- /base_mama/IR_0995.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0995.jpg -------------------------------------------------------------------------------- /base_mama/IR_0996.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_0996.jpg -------------------------------------------------------------------------------- /base_mama/IR_1000.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1000.jpg -------------------------------------------------------------------------------- /base_mama/IR_1003.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1003.jpg -------------------------------------------------------------------------------- /base_mama/IR_1016.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1016.jpg -------------------------------------------------------------------------------- /base_mama/IR_1026.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1026.jpg -------------------------------------------------------------------------------- /base_mama/IR_1031.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1031.jpg -------------------------------------------------------------------------------- /base_mama/IR_1041.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1041.jpg -------------------------------------------------------------------------------- /base_mama/IR_1047.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1047.jpg -------------------------------------------------------------------------------- /base_mama/IR_1166.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1166.jpg -------------------------------------------------------------------------------- /base_mama/IR_1174.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1174.jpg -------------------------------------------------------------------------------- /base_mama/IR_1182.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1182.jpg -------------------------------------------------------------------------------- /base_mama/IR_1190.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1190.jpg -------------------------------------------------------------------------------- /base_mama/IR_1245.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1245.jpg -------------------------------------------------------------------------------- /base_mama/IR_1252.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1252.jpg -------------------------------------------------------------------------------- /base_mama/IR_1258.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1258.jpg -------------------------------------------------------------------------------- /base_mama/IR_1270.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1270.jpg -------------------------------------------------------------------------------- /base_mama/IR_1283.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1283.jpg -------------------------------------------------------------------------------- /base_mama/IR_1290.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1290.jpg -------------------------------------------------------------------------------- /base_mama/IR_1321.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1321.jpg -------------------------------------------------------------------------------- /base_mama/IR_1330.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1330.jpg -------------------------------------------------------------------------------- /base_mama/IR_1336.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1336.jpg -------------------------------------------------------------------------------- /base_mama/IR_1349.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1349.jpg -------------------------------------------------------------------------------- /base_mama/IR_1353.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1353.jpg -------------------------------------------------------------------------------- /base_mama/IR_1358.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1358.jpg -------------------------------------------------------------------------------- /base_mama/IR_1366.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1366.jpg -------------------------------------------------------------------------------- /base_mama/IR_1366a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1366a.jpg -------------------------------------------------------------------------------- /base_mama/IR_1426.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1426.jpg -------------------------------------------------------------------------------- /base_mama/IR_1545.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1545.jpg -------------------------------------------------------------------------------- /base_mama/IR_1558.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1558.jpg -------------------------------------------------------------------------------- /base_mama/IR_1627.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1627.jpg -------------------------------------------------------------------------------- /base_mama/IR_1632.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1632.jpg -------------------------------------------------------------------------------- /base_mama/IR_1639.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1639.jpg -------------------------------------------------------------------------------- /base_mama/IR_1714.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1714.jpg -------------------------------------------------------------------------------- /base_mama/IR_1729.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1729.jpg -------------------------------------------------------------------------------- /base_mama/IR_1739.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1739.jpg -------------------------------------------------------------------------------- /base_mama/IR_1750.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1750.jpg -------------------------------------------------------------------------------- /base_mama/IR_1762.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_1762.jpg -------------------------------------------------------------------------------- /base_mama/IR_2841.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2841.jpg -------------------------------------------------------------------------------- /base_mama/IR_2846.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2846.jpg -------------------------------------------------------------------------------- /base_mama/IR_2859.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2859.jpg -------------------------------------------------------------------------------- /base_mama/IR_2869.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2869.jpg -------------------------------------------------------------------------------- /base_mama/IR_2873.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2873.jpg -------------------------------------------------------------------------------- /base_mama/IR_2877.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2877.jpg -------------------------------------------------------------------------------- /base_mama/IR_2884.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2884.jpg -------------------------------------------------------------------------------- /base_mama/IR_2889.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2889.jpg -------------------------------------------------------------------------------- /base_mama/IR_2899.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2899.jpg -------------------------------------------------------------------------------- /base_mama/IR_2904.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2904.jpg -------------------------------------------------------------------------------- /base_mama/IR_2918.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2918.jpg -------------------------------------------------------------------------------- /base_mama/IR_2927.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2927.jpg -------------------------------------------------------------------------------- /base_mama/IR_2931.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2931.jpg -------------------------------------------------------------------------------- /base_mama/IR_2942.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2942.jpg -------------------------------------------------------------------------------- /base_mama/IR_2944.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2944.jpg -------------------------------------------------------------------------------- /base_mama/IR_2952.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2952.jpg -------------------------------------------------------------------------------- /base_mama/IR_2957.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2957.jpg -------------------------------------------------------------------------------- /base_mama/IR_2961.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2961.jpg -------------------------------------------------------------------------------- /base_mama/IR_2966.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2966.jpg -------------------------------------------------------------------------------- /base_mama/IR_2971.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2971.jpg -------------------------------------------------------------------------------- /base_mama/IR_2977.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_2977.jpg -------------------------------------------------------------------------------- /base_mama/IR_3105.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3105.jpg -------------------------------------------------------------------------------- /base_mama/IR_3109.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3109.jpg -------------------------------------------------------------------------------- /base_mama/IR_3113.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3113.jpg -------------------------------------------------------------------------------- /base_mama/IR_3117.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3117.jpg -------------------------------------------------------------------------------- /base_mama/IR_3309.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3309.jpg -------------------------------------------------------------------------------- /base_mama/IR_3330.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3330.jpg -------------------------------------------------------------------------------- /base_mama/IR_3416.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3416.jpg -------------------------------------------------------------------------------- /base_mama/IR_3420.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3420.jpg -------------------------------------------------------------------------------- /base_mama/IR_3425.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3425.jpg -------------------------------------------------------------------------------- /base_mama/IR_3429.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3429.jpg -------------------------------------------------------------------------------- /base_mama/IR_3433.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3433.jpg -------------------------------------------------------------------------------- /base_mama/IR_3437.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3437.jpg -------------------------------------------------------------------------------- /base_mama/IR_3441.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3441.jpg -------------------------------------------------------------------------------- /base_mama/IR_3506.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3506.jpg -------------------------------------------------------------------------------- /base_mama/IR_3604.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3604.jpg -------------------------------------------------------------------------------- /base_mama/IR_3609.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3609.jpg -------------------------------------------------------------------------------- /base_mama/IR_3614.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3614.jpg -------------------------------------------------------------------------------- /base_mama/IR_3619.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3619.jpg -------------------------------------------------------------------------------- /base_mama/IR_3624.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3624.jpg -------------------------------------------------------------------------------- /base_mama/IR_3630.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3630.jpg -------------------------------------------------------------------------------- /base_mama/IR_3635.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3635.jpg -------------------------------------------------------------------------------- /base_mama/IR_3639.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3639.jpg -------------------------------------------------------------------------------- /base_mama/IR_3643.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3643.jpg -------------------------------------------------------------------------------- /base_mama/IR_3648.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3648.jpg -------------------------------------------------------------------------------- /base_mama/IR_3652.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3652.jpg -------------------------------------------------------------------------------- /base_mama/IR_3678.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3678.jpg -------------------------------------------------------------------------------- /base_mama/IR_3689.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3689.jpg -------------------------------------------------------------------------------- /base_mama/IR_3697.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3697.jpg -------------------------------------------------------------------------------- /base_mama/IR_3702.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3702.jpg -------------------------------------------------------------------------------- /base_mama/IR_3712.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3712.jpg -------------------------------------------------------------------------------- /base_mama/IR_3716.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3716.jpg -------------------------------------------------------------------------------- /base_mama/IR_3722.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3722.jpg -------------------------------------------------------------------------------- /base_mama/IR_3727.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3727.jpg -------------------------------------------------------------------------------- /base_mama/IR_3730.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3730.jpg -------------------------------------------------------------------------------- /base_mama/IR_3734.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3734.jpg -------------------------------------------------------------------------------- /base_mama/IR_3739.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3739.jpg -------------------------------------------------------------------------------- /base_mama/IR_3743.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3743.jpg -------------------------------------------------------------------------------- /base_mama/IR_3744.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3744.jpg -------------------------------------------------------------------------------- /base_mama/IR_3748.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3748.jpg -------------------------------------------------------------------------------- /base_mama/IR_3756.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3756.jpg -------------------------------------------------------------------------------- /base_mama/IR_3759.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3759.jpg -------------------------------------------------------------------------------- /base_mama/IR_3764.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3764.jpg -------------------------------------------------------------------------------- /base_mama/IR_3769.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3769.jpg -------------------------------------------------------------------------------- /base_mama/IR_3773.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3773.jpg -------------------------------------------------------------------------------- /base_mama/IR_3777.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3777.jpg -------------------------------------------------------------------------------- /base_mama/IR_3782.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3782.jpg -------------------------------------------------------------------------------- /base_mama/IR_3786.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3786.jpg -------------------------------------------------------------------------------- /base_mama/IR_3792.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3792.jpg -------------------------------------------------------------------------------- /base_mama/IR_3797.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3797.jpg -------------------------------------------------------------------------------- /base_mama/IR_3801.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3801.jpg -------------------------------------------------------------------------------- /base_mama/IR_3809.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3809.jpg -------------------------------------------------------------------------------- /base_mama/IR_3814.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3814.jpg -------------------------------------------------------------------------------- /base_mama/IR_3819.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3819.jpg -------------------------------------------------------------------------------- /base_mama/IR_3825.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3825.jpg -------------------------------------------------------------------------------- /base_mama/IR_3830.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3830.jpg -------------------------------------------------------------------------------- /base_mama/IR_3834.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3834.jpg -------------------------------------------------------------------------------- /base_mama/IR_3839.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3839.jpg -------------------------------------------------------------------------------- /base_mama/IR_3843.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3843.jpg -------------------------------------------------------------------------------- /base_mama/IR_3849.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3849.jpg -------------------------------------------------------------------------------- /base_mama/IR_3921.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3921.jpg -------------------------------------------------------------------------------- /base_mama/IR_3927.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3927.jpg -------------------------------------------------------------------------------- /base_mama/IR_3933.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3933.jpg -------------------------------------------------------------------------------- /base_mama/IR_3940.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3940.jpg -------------------------------------------------------------------------------- /base_mama/IR_3946.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3946.jpg -------------------------------------------------------------------------------- /base_mama/IR_3951.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3951.jpg -------------------------------------------------------------------------------- /base_mama/IR_3957.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3957.jpg -------------------------------------------------------------------------------- /base_mama/IR_3962.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3962.jpg -------------------------------------------------------------------------------- /base_mama/IR_3967.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3967.jpg -------------------------------------------------------------------------------- /base_mama/IR_3977.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3977.jpg -------------------------------------------------------------------------------- /base_mama/IR_3983.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3983.jpg -------------------------------------------------------------------------------- /base_mama/IR_3996.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_3996.jpg -------------------------------------------------------------------------------- /base_mama/IR_4001.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4001.jpg -------------------------------------------------------------------------------- /base_mama/IR_4006.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4006.jpg -------------------------------------------------------------------------------- /base_mama/IR_4071.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4071.jpg -------------------------------------------------------------------------------- /base_mama/IR_4075.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4075.jpg -------------------------------------------------------------------------------- /base_mama/IR_4081.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4081.jpg -------------------------------------------------------------------------------- /base_mama/IR_4089.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4089.jpg -------------------------------------------------------------------------------- /base_mama/IR_4094.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4094.jpg -------------------------------------------------------------------------------- /base_mama/IR_4098.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4098.jpg -------------------------------------------------------------------------------- /base_mama/IR_4111.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4111.jpg -------------------------------------------------------------------------------- /base_mama/IR_4120.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4120.jpg -------------------------------------------------------------------------------- /base_mama/IR_4125.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4125.jpg -------------------------------------------------------------------------------- /base_mama/IR_4130.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4130.jpg -------------------------------------------------------------------------------- /base_mama/IR_4136.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4136.jpg -------------------------------------------------------------------------------- /base_mama/IR_4141.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4141.jpg -------------------------------------------------------------------------------- /base_mama/IR_4149.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4149.jpg -------------------------------------------------------------------------------- /base_mama/IR_4875.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4875.jpg -------------------------------------------------------------------------------- /base_mama/IR_4882.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4882.jpg -------------------------------------------------------------------------------- /base_mama/IR_4900.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4900.jpg -------------------------------------------------------------------------------- /base_mama/IR_4905.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4905.jpg -------------------------------------------------------------------------------- /base_mama/IR_4910.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4910.jpg -------------------------------------------------------------------------------- /base_mama/IR_4917.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4917.jpg -------------------------------------------------------------------------------- /base_mama/IR_4957.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4957.jpg -------------------------------------------------------------------------------- /base_mama/IR_4968.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4968.jpg -------------------------------------------------------------------------------- /base_mama/IR_4974.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4974.jpg -------------------------------------------------------------------------------- /base_mama/IR_4978.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4978.jpg -------------------------------------------------------------------------------- /base_mama/IR_4983.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_4983.jpg -------------------------------------------------------------------------------- /base_mama/IR_5068.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5068.jpg -------------------------------------------------------------------------------- /base_mama/IR_5077.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5077.jpg -------------------------------------------------------------------------------- /base_mama/IR_5088.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5088.jpg -------------------------------------------------------------------------------- /base_mama/IR_5099.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5099.jpg -------------------------------------------------------------------------------- /base_mama/IR_5140.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5140.jpg -------------------------------------------------------------------------------- /base_mama/IR_5149.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5149.jpg -------------------------------------------------------------------------------- /base_mama/IR_5159.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5159.jpg -------------------------------------------------------------------------------- /base_mama/IR_5169.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5169.jpg -------------------------------------------------------------------------------- /base_mama/IR_5178.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5178.jpg -------------------------------------------------------------------------------- /base_mama/IR_5280.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5280.jpg -------------------------------------------------------------------------------- /base_mama/IR_5285.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5285.jpg -------------------------------------------------------------------------------- /base_mama/IR_5293.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5293.jpg -------------------------------------------------------------------------------- /base_mama/IR_5297.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5297.jpg -------------------------------------------------------------------------------- /base_mama/IR_5300.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5300.jpg -------------------------------------------------------------------------------- /base_mama/IR_5317.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5317.jpg -------------------------------------------------------------------------------- /base_mama/IR_5336.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5336.jpg -------------------------------------------------------------------------------- /base_mama/IR_5349.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5349.jpg -------------------------------------------------------------------------------- /base_mama/IR_5358.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5358.jpg -------------------------------------------------------------------------------- /base_mama/IR_5365.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5365.jpg -------------------------------------------------------------------------------- /base_mama/IR_5371.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5371.jpg -------------------------------------------------------------------------------- /base_mama/IR_5378.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5378.jpg -------------------------------------------------------------------------------- /base_mama/IR_5451.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5451.jpg -------------------------------------------------------------------------------- /base_mama/IR_5462.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5462.jpg -------------------------------------------------------------------------------- /base_mama/IR_5469.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5469.jpg -------------------------------------------------------------------------------- /base_mama/IR_5471.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5471.jpg -------------------------------------------------------------------------------- /base_mama/IR_5479.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5479.jpg -------------------------------------------------------------------------------- /base_mama/IR_5485.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5485.jpg -------------------------------------------------------------------------------- /base_mama/IR_5491.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5491.jpg -------------------------------------------------------------------------------- /base_mama/IR_5506.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5506.jpg -------------------------------------------------------------------------------- /base_mama/IR_5511.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5511.jpg -------------------------------------------------------------------------------- /base_mama/IR_5517.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5517.jpg -------------------------------------------------------------------------------- /base_mama/IR_5526.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5526.jpg -------------------------------------------------------------------------------- /base_mama/IR_5531.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5531.jpg -------------------------------------------------------------------------------- /base_mama/IR_5541.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5541.jpg -------------------------------------------------------------------------------- /base_mama/IR_5548.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5548.jpg -------------------------------------------------------------------------------- /base_mama/IR_5557.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5557.jpg -------------------------------------------------------------------------------- /base_mama/IR_5563.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5563.jpg -------------------------------------------------------------------------------- /base_mama/IR_5570.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5570.jpg -------------------------------------------------------------------------------- /base_mama/IR_5614.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5614.jpg -------------------------------------------------------------------------------- /base_mama/IR_5624.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5624.jpg -------------------------------------------------------------------------------- /base_mama/IR_5651.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5651.jpg -------------------------------------------------------------------------------- /base_mama/IR_5656.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5656.jpg -------------------------------------------------------------------------------- /base_mama/IR_5657.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5657.jpg -------------------------------------------------------------------------------- /base_mama/IR_5670.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5670.jpg -------------------------------------------------------------------------------- /base_mama/IR_5678.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5678.jpg -------------------------------------------------------------------------------- /base_mama/IR_5687.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5687.jpg -------------------------------------------------------------------------------- /base_mama/IR_5708.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5708.jpg -------------------------------------------------------------------------------- /base_mama/IR_5756.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5756.jpg -------------------------------------------------------------------------------- /base_mama/IR_5763.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5763.jpg -------------------------------------------------------------------------------- /base_mama/IR_5769.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5769.jpg -------------------------------------------------------------------------------- /base_mama/IR_5776.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5776.jpg -------------------------------------------------------------------------------- /base_mama/IR_5855.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5855.jpg -------------------------------------------------------------------------------- /base_mama/IR_5870.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5870.jpg -------------------------------------------------------------------------------- /base_mama/IR_5878.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5878.jpg -------------------------------------------------------------------------------- /base_mama/IR_5883.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5883.jpg -------------------------------------------------------------------------------- /base_mama/IR_5902.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5902.jpg -------------------------------------------------------------------------------- /base_mama/IR_5916.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5916.jpg -------------------------------------------------------------------------------- /base_mama/IR_5920.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5920.jpg -------------------------------------------------------------------------------- /base_mama/IR_5923.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5923.jpg -------------------------------------------------------------------------------- /base_mama/IR_5929.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5929.jpg -------------------------------------------------------------------------------- /base_mama/IR_5931.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5931.jpg -------------------------------------------------------------------------------- /base_mama/IR_5941.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5941.jpg -------------------------------------------------------------------------------- /base_mama/IR_5964.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5964.jpg -------------------------------------------------------------------------------- /base_mama/IR_5986.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_5986.jpg -------------------------------------------------------------------------------- /base_mama/IR_6002.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_6002.jpg -------------------------------------------------------------------------------- /base_mama/IR_6010.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_6010.jpg -------------------------------------------------------------------------------- /base_mama/IR_6020.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_6020.jpg -------------------------------------------------------------------------------- /base_mama/IR_6084.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_6084.jpg -------------------------------------------------------------------------------- /base_mama/IR_6105.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_6105.jpg -------------------------------------------------------------------------------- /base_mama/IR_6113.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_6113.jpg -------------------------------------------------------------------------------- /base_mama/IR_7446.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_7446.jpg -------------------------------------------------------------------------------- /base_mama/IR_7455.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_7455.jpg -------------------------------------------------------------------------------- /base_mama/IR_7464.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_7464.jpg -------------------------------------------------------------------------------- /base_mama/IR_7479.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_7479.jpg -------------------------------------------------------------------------------- /base_mama/IR_8143.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_8143.jpg -------------------------------------------------------------------------------- /base_mama/IR_8153.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_8153.jpg -------------------------------------------------------------------------------- /base_mama/IR_8163.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_8163.jpg -------------------------------------------------------------------------------- /base_mama/IR_8199.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_8199.jpg -------------------------------------------------------------------------------- /base_mama/IR_8208.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_8208.jpg -------------------------------------------------------------------------------- /base_mama/IR_8228.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_8228.jpg -------------------------------------------------------------------------------- /base_mama/IR_8236.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_8236.jpg -------------------------------------------------------------------------------- /base_mama/IR_8269.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_8269.jpg -------------------------------------------------------------------------------- /base_mama/IR_8277.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_8277.jpg -------------------------------------------------------------------------------- /base_mama/IR_8285.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_8285.jpg -------------------------------------------------------------------------------- /base_mama/IR_8296.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_8296.jpg -------------------------------------------------------------------------------- /base_mama/IR_8304.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_8304.jpg -------------------------------------------------------------------------------- /base_mama/IR_8317.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/base_mama/IR_8317.jpg -------------------------------------------------------------------------------- /bear.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/bear.jpg -------------------------------------------------------------------------------- /car.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/car.jpeg -------------------------------------------------------------------------------- /car.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/car.jpg -------------------------------------------------------------------------------- /car_plate.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/car_plate.webp -------------------------------------------------------------------------------- /coins.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/coins.jpg -------------------------------------------------------------------------------- /debug.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/debug.log -------------------------------------------------------------------------------- /horse.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/horse.jpg -------------------------------------------------------------------------------- /legos/batman1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/batman1.jpg -------------------------------------------------------------------------------- /legos/batman2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/batman2.jpg -------------------------------------------------------------------------------- /legos/ca1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/ca1.jpg -------------------------------------------------------------------------------- /legos/ca2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/ca2.jpg -------------------------------------------------------------------------------- /legos/flash1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/flash1.jpg -------------------------------------------------------------------------------- /legos/flash2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/flash2.jpg -------------------------------------------------------------------------------- /legos/ha1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/ha1.jpg -------------------------------------------------------------------------------- /legos/ha2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/ha2.jpg -------------------------------------------------------------------------------- /legos/hf1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/hf1.jpg -------------------------------------------------------------------------------- /legos/hf2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/hf2.jpg -------------------------------------------------------------------------------- /legos/hulk1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/hulk1.jpg -------------------------------------------------------------------------------- /legos/hulk2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/hulk2.jpg -------------------------------------------------------------------------------- /legos/robin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/robin.jpg -------------------------------------------------------------------------------- /legos/superman1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/superman1.jpg -------------------------------------------------------------------------------- /legos/superman2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/superman2.jpg -------------------------------------------------------------------------------- /legos/thor1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/thor1.jpg -------------------------------------------------------------------------------- /legos/thor2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/thor2.jpg -------------------------------------------------------------------------------- /legos/wolv1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/wolv1.jpg -------------------------------------------------------------------------------- /legos/wolv2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/wolv2.jpg -------------------------------------------------------------------------------- /legos/ww1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/ww1.jpg -------------------------------------------------------------------------------- /legos/ww2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/legos/ww2.jpg -------------------------------------------------------------------------------- /lowcontrastimg2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/lowcontrastimg2.jpg -------------------------------------------------------------------------------- /maca_caindo.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/maca_caindo.mp4 -------------------------------------------------------------------------------- /maca_segmentada.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/maca_segmentada.mp4 -------------------------------------------------------------------------------- /mandrill_condec.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/mandrill_condec.jpg -------------------------------------------------------------------------------- /output.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/output.mp4 -------------------------------------------------------------------------------- /pikachu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/pikachu.jpg -------------------------------------------------------------------------------- /pirula.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/pirula.jpg -------------------------------------------------------------------------------- /pokemon_dataset/pokemon.csv: -------------------------------------------------------------------------------- 1 | Name,Type1,Type2,Evolution 2 | bulbasaur,Grass,Poison,ivysaur 3 | ivysaur,Grass,Poison,venusaur 4 | venusaur,Grass,Poison, 5 | charmander,Fire,,charmeleon 6 | charmeleon,Fire,,charizard 7 | charizard,Fire,Flying, 8 | squirtle,Water,,wartortle 9 | wartortle,Water,,blastoise 10 | blastoise,Water,, 11 | caterpie,Bug,,metapod 12 | metapod,Bug,,butterfree 13 | butterfree,Bug,Flying, 14 | weedle,Bug,Poison,kakuna 15 | kakuna,Bug,Poison,beedrill 16 | beedrill,Bug,Poison, 17 | pidgey,Normal,Flying,pidgeotto 18 | pidgeotto,Normal,Flying,pidgeot 19 | pidgeot,Normal,Flying, 20 | rattata,Normal,,raticate 21 | raticate,Normal,, 22 | spearow,Normal,Flying,fearow 23 | fearow,Normal,Flying, 24 | ekans,Poison,,arbok 25 | arbok,Poison,, 26 | pikachu,Electric,,raichu 27 | raichu,Electric,, 28 | sandshrew,Ground,,sandslash 29 | sandslash,Ground,, 30 | nidoran-f,Poison,,nidorina 31 | nidorina,Poison,,nidoqueen 32 | nidoqueen,Poison,Ground, 33 | nidoran-m,Poison,,nidorino 34 | nidorino,Poison,,nidoking 35 | nidoking,Poison,Ground, 36 | clefairy,Fairy,,clefable 37 | clefable,Fairy,, 38 | vulpix,Fire,,ninetales 39 | ninetales,Fire,, 40 | jigglypuff,Normal,Fairy, 41 | wigglytuff,Normal,Fairy, 42 | zubat,Poison,Flying, 43 | golbat,Poison,Flying, 44 | oddish,Grass,Poison, 45 | gloom,Grass,Poison, 46 | vileplume,Grass,Poison, 47 | paras,Bug,Grass, 48 | parasect,Bug,Grass, 49 | venonat,Bug,Poison, 50 | venomoth,Bug,Poison, 51 | diglett,Ground,,dugtrio 52 | dugtrio,Ground,, 53 | meowth,Normal,,persian 54 | persian,Normal,, 55 | psyduck,Water,,golduck 56 | golduck,Water,, 57 | mankey,Fighting,,primeape 58 | primeape,Fighting,, 59 | growlithe,Fire,,arcanine 60 | arcanine,Fire,, 61 | poliwag,Water,,poliwhirl 62 | poliwhirl,Water,,poliwrath 63 | poliwrath,Water,Fighting, 64 | abra,Psychic,,kadabra 65 | kadabra,Psychic,,alakazam 66 | alakazam,Psychic,, 67 | machop,Fighting,, 68 | machoke,Fighting,, 69 | machamp,Fighting,, 70 | bellsprout,Grass,Poison, 71 | weepinbell,Grass,Poison, 72 | victreebel,Grass,Poison, 73 | tentacool,Water,Poison, 74 | tentacruel,Water,Poison, 75 | geodude,Rock,Ground, 76 | graveler,Rock,Ground, 77 | golem,Rock,Ground, 78 | ponyta,Fire,, 79 | rapidash,Fire,, 80 | slowpoke,Water,Psychic, 81 | slowbro,Water,Psychic, 82 | magnemite,Electric,Steel, 83 | magneton,Electric,Steel, 84 | farfetchd,Normal,Flying, 85 | doduo,Normal,Flying, 86 | dodrio,Normal,Flying, 87 | seel,Water,, 88 | dewgong,Water,Ice, 89 | grimer,Poison,, 90 | muk,Poison,, 91 | shellder,Water,, 92 | cloyster,Water,Ice, 93 | gastly,Ghost,Poison, 94 | haunter,Ghost,Poison, 95 | gengar,Ghost,Poison, 96 | onix,Rock,Ground, 97 | drowzee,Psychic,, 98 | hypno,Psychic,, 99 | krabby,Water,, 100 | kingler,Water,, 101 | voltorb,Electric,, 102 | electrode,Electric,, 103 | exeggcute,Grass,Psychic, 104 | exeggutor,Grass,Psychic, 105 | cubone,Ground,, 106 | marowak,Ground,, 107 | hitmonlee,Fighting,, 108 | hitmonchan,Fighting,, 109 | lickitung,Normal,, 110 | koffing,Poison,, 111 | weezing,Poison,, 112 | rhyhorn,Ground,Rock, 113 | rhydon,Ground,Rock, 114 | chansey,Normal,, 115 | tangela,Grass,, 116 | kangaskhan,Normal,, 117 | horsea,Water,, 118 | seadra,Water,, 119 | goldeen,Water,, 120 | seaking,Water,, 121 | staryu,Water,, 122 | starmie,Water,Psychic, 123 | mr-mime,Psychic,Fairy, 124 | scyther,Bug,Flying, 125 | jynx,Ice,Psychic, 126 | electabuzz,Electric,, 127 | magmar,Fire,, 128 | pinsir,Bug,, 129 | tauros,Normal,, 130 | magikarp,Water,, 131 | gyarados,Water,Flying, 132 | lapras,Water,Ice, 133 | ditto,Normal,, 134 | eevee,Normal,, 135 | vaporeon,Water,, 136 | jolteon,Electric,, 137 | flareon,Fire,, 138 | porygon,Normal,, 139 | omanyte,Rock,Water, 140 | omastar,Rock,Water, 141 | kabuto,Rock,Water, 142 | kabutops,Rock,Water, 143 | aerodactyl,Rock,Flying, 144 | snorlax,Normal,, 145 | articuno,Ice,Flying, 146 | zapdos,Electric,Flying, 147 | moltres,Fire,Flying, 148 | dratini,Dragon,, 149 | dragonair,Dragon,, 150 | dragonite,Dragon,Flying, 151 | mewtwo,Psychic,, 152 | mew,Psychic,, 153 | chikorita,Grass,, 154 | bayleef,Grass,, 155 | meganium,Grass,, 156 | cyndaquil,Fire,, 157 | quilava,Fire,, 158 | typhlosion,Fire,, 159 | totodile,Water,, 160 | croconaw,Water,, 161 | feraligatr,Water,, 162 | sentret,Normal,, 163 | furret,Normal,, 164 | hoothoot,Normal,Flying, 165 | noctowl,Normal,Flying, 166 | ledyba,Bug,Flying, 167 | ledian,Bug,Flying, 168 | spinarak,Bug,Poison, 169 | ariados,Bug,Poison, 170 | crobat,Poison,Flying, 171 | chinchou,Water,Electric, 172 | lanturn,Water,Electric, 173 | pichu,Electric,, 174 | cleffa,Fairy,, 175 | igglybuff,Normal,Fairy, 176 | togepi,Fairy,, 177 | togetic,Fairy,Flying, 178 | natu,Psychic,Flying, 179 | xatu,Psychic,Flying, 180 | mareep,Electric,, 181 | flaaffy,Electric,, 182 | ampharos,Electric,, 183 | bellossom,Grass,, 184 | marill,Water,Fairy, 185 | azumarill,Water,Fairy, 186 | sudowoodo,Rock,, 187 | politoed,Water,, 188 | hoppip,Grass,Flying, 189 | skiploom,Grass,Flying, 190 | jumpluff,Grass,Flying, 191 | aipom,Normal,, 192 | sunkern,Grass,, 193 | sunflora,Grass,, 194 | yanma,Bug,Flying, 195 | wooper,Water,Ground, 196 | quagsire,Water,Ground, 197 | espeon,Psychic,, 198 | umbreon,Dark,, 199 | murkrow,Dark,Flying, 200 | slowking,Water,Psychic, 201 | misdreavus,Ghost,, 202 | unown,Psychic,, 203 | wobbuffet,Psychic,, 204 | girafarig,Normal,Psychic, 205 | pineco,Bug,, 206 | forretress,Bug,Steel, 207 | dunsparce,Normal,, 208 | gligar,Ground,Flying, 209 | steelix,Steel,Ground, 210 | snubbull,Fairy,, 211 | granbull,Fairy,, 212 | qwilfish,Water,Poison, 213 | scizor,Bug,Steel, 214 | shuckle,Bug,Rock, 215 | heracross,Bug,Fighting, 216 | sneasel,Dark,Ice, 217 | teddiursa,Normal,, 218 | ursaring,Normal,, 219 | slugma,Fire,, 220 | magcargo,Fire,Rock, 221 | swinub,Ice,Ground, 222 | piloswine,Ice,Ground, 223 | corsola,Water,Rock, 224 | remoraid,Water,, 225 | octillery,Water,, 226 | delibird,Ice,Flying, 227 | mantine,Water,Flying, 228 | skarmory,Steel,Flying, 229 | houndour,Dark,Fire, 230 | houndoom,Dark,Fire, 231 | kingdra,Water,Dragon, 232 | phanpy,Ground,, 233 | donphan,Ground,, 234 | porygon2,Normal,, 235 | stantler,Normal,, 236 | smeargle,Normal,, 237 | tyrogue,Fighting,, 238 | hitmontop,Fighting,, 239 | smoochum,Ice,Psychic, 240 | elekid,Electric,, 241 | magby,Fire,, 242 | miltank,Normal,, 243 | blissey,Normal,, 244 | raikou,Electric,, 245 | entei,Fire,, 246 | suicune,Water,, 247 | larvitar,Rock,Ground, 248 | pupitar,Rock,Ground, 249 | tyranitar,Rock,Dark, 250 | lugia,Psychic,Flying, 251 | ho-oh,Fire,Flying, 252 | celebi,Psychic,Grass, 253 | treecko,Grass,, 254 | grovyle,Grass,, 255 | sceptile,Grass,, 256 | torchic,Fire,, 257 | combusken,Fire,Fighting, 258 | blaziken,Fire,Fighting, 259 | mudkip,Water,, 260 | marshtomp,Water,Ground, 261 | swampert,Water,Ground, 262 | poochyena,Dark,, 263 | mightyena,Dark,, 264 | zigzagoon,Normal,, 265 | linoone,Normal,, 266 | wurmple,Bug,, 267 | silcoon,Bug,, 268 | beautifly,Bug,Flying, 269 | cascoon,Bug,, 270 | dustox,Bug,Poison, 271 | lotad,Water,Grass, 272 | lombre,Water,Grass, 273 | ludicolo,Water,Grass, 274 | seedot,Grass,, 275 | nuzleaf,Grass,Dark, 276 | shiftry,Grass,Dark, 277 | taillow,Normal,Flying, 278 | swellow,Normal,Flying, 279 | wingull,Water,Flying, 280 | pelipper,Water,Flying, 281 | ralts,Psychic,Fairy, 282 | kirlia,Psychic,Fairy, 283 | gardevoir,Psychic,Fairy, 284 | surskit,Bug,Water, 285 | masquerain,Bug,Flying, 286 | shroomish,Grass,, 287 | breloom,Grass,Fighting, 288 | slakoth,Normal,, 289 | vigoroth,Normal,, 290 | slaking,Normal,, 291 | nincada,Bug,Ground, 292 | ninjask,Bug,Flying, 293 | shedinja,Bug,Ghost, 294 | whismur,Normal,, 295 | loudred,Normal,, 296 | exploud,Normal,, 297 | makuhita,Fighting,, 298 | hariyama,Fighting,, 299 | azurill,Normal,Fairy, 300 | nosepass,Rock,, 301 | skitty,Normal,, 302 | delcatty,Normal,, 303 | sableye,Dark,Ghost, 304 | mawile,Steel,Fairy, 305 | aron,Steel,Rock, 306 | lairon,Steel,Rock, 307 | aggron,Steel,Rock, 308 | meditite,Fighting,Psychic, 309 | medicham,Fighting,Psychic, 310 | electrike,Electric,, 311 | manectric,Electric,, 312 | plusle,Electric,, 313 | minun,Electric,, 314 | volbeat,Bug,, 315 | illumise,Bug,, 316 | roselia,Grass,Poison, 317 | gulpin,Poison,, 318 | swalot,Poison,, 319 | carvanha,Water,Dark, 320 | sharpedo,Water,Dark, 321 | wailmer,Water,, 322 | wailord,Water,, 323 | numel,Fire,Ground, 324 | camerupt,Fire,Ground, 325 | torkoal,Fire,, 326 | spoink,Psychic,, 327 | grumpig,Psychic,, 328 | spinda,Normal,, 329 | trapinch,Ground,, 330 | vibrava,Ground,Dragon, 331 | flygon,Ground,Dragon, 332 | cacnea,Grass,, 333 | cacturne,Grass,Dark, 334 | swablu,Normal,Flying, 335 | altaria,Dragon,Flying, 336 | zangoose,Normal,, 337 | seviper,Poison,, 338 | lunatone,Rock,Psychic, 339 | solrock,Rock,Psychic, 340 | barboach,Water,Ground, 341 | whiscash,Water,Ground, 342 | corphish,Water,, 343 | crawdaunt,Water,Dark, 344 | baltoy,Ground,Psychic, 345 | claydol,Ground,Psychic, 346 | lileep,Rock,Grass, 347 | cradily,Rock,Grass, 348 | anorith,Rock,Bug, 349 | armaldo,Rock,Bug, 350 | feebas,Water,, 351 | milotic,Water,, 352 | castform,Normal,, 353 | kecleon,Normal,, 354 | shuppet,Ghost,, 355 | banette,Ghost,, 356 | duskull,Ghost,, 357 | dusclops,Ghost,, 358 | tropius,Grass,Flying, 359 | chimecho,Psychic,, 360 | absol,Dark,, 361 | wynaut,Psychic,, 362 | snorunt,Ice,, 363 | glalie,Ice,, 364 | spheal,Ice,Water, 365 | sealeo,Ice,Water, 366 | walrein,Ice,Water, 367 | clamperl,Water,, 368 | huntail,Water,, 369 | gorebyss,Water,, 370 | relicanth,Water,Rock, 371 | luvdisc,Water,, 372 | bagon,Dragon,, 373 | shelgon,Dragon,, 374 | salamence,Dragon,Flying, 375 | beldum,Steel,Psychic, 376 | metang,Steel,Psychic, 377 | metagross,Steel,Psychic, 378 | regirock,Rock,, 379 | regice,Ice,, 380 | registeel,Steel,, 381 | latias,Dragon,Psychic, 382 | latios,Dragon,Psychic, 383 | kyogre,Water,, 384 | groudon,Ground,, 385 | rayquaza,Dragon,Flying, 386 | jirachi,Steel,Psychic, 387 | deoxys-normal,Psychic,, 388 | turtwig,Grass,, 389 | grotle,Grass,, 390 | torterra,Grass,Ground, 391 | chimchar,Fire,, 392 | monferno,Fire,Fighting, 393 | infernape,Fire,Fighting, 394 | piplup,Water,, 395 | prinplup,Water,, 396 | empoleon,Water,Steel, 397 | starly,Normal,Flying, 398 | staravia,Normal,Flying, 399 | staraptor,Normal,Flying, 400 | bidoof,Normal,, 401 | bibarel,Normal,Water, 402 | kricketot,Bug,, 403 | kricketune,Bug,, 404 | shinx,Electric,, 405 | luxio,Electric,, 406 | luxray,Electric,, 407 | budew,Grass,Poison, 408 | roserade,Grass,Poison, 409 | cranidos,Rock,, 410 | rampardos,Rock,, 411 | shieldon,Rock,Steel, 412 | bastiodon,Rock,Steel, 413 | burmy,Bug,, 414 | wormadam-plant,Bug,Grass, 415 | mothim,Bug,Flying, 416 | combee,Bug,Flying, 417 | vespiquen,Bug,Flying, 418 | pachirisu,Electric,, 419 | buizel,Water,, 420 | floatzel,Water,, 421 | cherubi,Grass,, 422 | cherrim,Grass,, 423 | shellos,Water,, 424 | gastrodon,Water,Ground, 425 | ambipom,Normal,, 426 | drifloon,Ghost,Flying, 427 | drifblim,Ghost,Flying, 428 | buneary,Normal,, 429 | lopunny,Normal,, 430 | mismagius,Ghost,, 431 | honchkrow,Dark,Flying, 432 | glameow,Normal,, 433 | purugly,Normal,, 434 | chingling,Psychic,, 435 | stunky,Poison,Dark, 436 | skuntank,Poison,Dark, 437 | bronzor,Steel,Psychic, 438 | bronzong,Steel,Psychic, 439 | bonsly,Rock,, 440 | mime-jr,Psychic,Fairy, 441 | happiny,Normal,, 442 | chatot,Normal,Flying, 443 | spiritomb,Ghost,Dark, 444 | gible,Dragon,Ground, 445 | gabite,Dragon,Ground, 446 | garchomp,Dragon,Ground, 447 | munchlax,Normal,, 448 | riolu,Fighting,, 449 | lucario,Fighting,Steel, 450 | hippopotas,Ground,, 451 | hippowdon,Ground,, 452 | skorupi,Poison,Bug, 453 | drapion,Poison,Dark, 454 | croagunk,Poison,Fighting, 455 | toxicroak,Poison,Fighting, 456 | carnivine,Grass,, 457 | finneon,Water,, 458 | lumineon,Water,, 459 | mantyke,Water,Flying, 460 | snover,Grass,Ice, 461 | abomasnow,Grass,Ice, 462 | weavile,Dark,Ice, 463 | magnezone,Electric,Steel, 464 | lickilicky,Normal,, 465 | rhyperior,Ground,Rock, 466 | tangrowth,Grass,, 467 | electivire,Electric,, 468 | magmortar,Fire,, 469 | togekiss,Fairy,Flying, 470 | yanmega,Bug,Flying, 471 | leafeon,Grass,, 472 | glaceon,Ice,, 473 | gliscor,Ground,Flying, 474 | mamoswine,Ice,Ground, 475 | porygon-z,Normal,, 476 | gallade,Psychic,Fighting, 477 | probopass,Rock,Steel, 478 | dusknoir,Ghost,, 479 | froslass,Ice,Ghost, 480 | rotom,Electric,Ghost, 481 | uxie,Psychic,, 482 | mesprit,Psychic,, 483 | azelf,Psychic,, 484 | dialga,Steel,Dragon, 485 | palkia,Water,Dragon, 486 | heatran,Fire,Steel, 487 | regigigas,Normal,, 488 | giratina-altered,Ghost,Dragon, 489 | cresselia,Psychic,, 490 | phione,Water,, 491 | manaphy,Water,, 492 | darkrai,Dark,, 493 | shaymin-land,Grass,, 494 | arceus,Normal,, 495 | victini,Psychic,Fire, 496 | snivy,Grass,, 497 | servine,Grass,, 498 | serperior,Grass,, 499 | tepig,Fire,, 500 | pignite,Fire,Fighting, 501 | emboar,Fire,Fighting, 502 | oshawott,Water,, 503 | dewott,Water,, 504 | samurott,Water,, 505 | patrat,Normal,, 506 | watchog,Normal,, 507 | lillipup,Normal,, 508 | herdier,Normal,, 509 | stoutland,Normal,, 510 | purrloin,Dark,, 511 | liepard,Dark,, 512 | pansage,Grass,, 513 | simisage,Grass,, 514 | pansear,Fire,, 515 | simisear,Fire,, 516 | panpour,Water,, 517 | simipour,Water,, 518 | munna,Psychic,, 519 | musharna,Psychic,, 520 | pidove,Normal,Flying, 521 | tranquill,Normal,Flying, 522 | unfezant,Normal,Flying, 523 | blitzle,Electric,, 524 | zebstrika,Electric,, 525 | roggenrola,Rock,, 526 | boldore,Rock,, 527 | gigalith,Rock,, 528 | woobat,Psychic,Flying, 529 | swoobat,Psychic,Flying, 530 | drilbur,Ground,, 531 | excadrill,Ground,Steel, 532 | audino,Normal,, 533 | timburr,Fighting,, 534 | gurdurr,Fighting,, 535 | conkeldurr,Fighting,, 536 | tympole,Water,, 537 | palpitoad,Water,Ground, 538 | seismitoad,Water,Ground, 539 | throh,Fighting,, 540 | sawk,Fighting,, 541 | sewaddle,Bug,Grass, 542 | swadloon,Bug,Grass, 543 | leavanny,Bug,Grass, 544 | venipede,Bug,Poison, 545 | whirlipede,Bug,Poison, 546 | scolipede,Bug,Poison, 547 | cottonee,Grass,Fairy, 548 | whimsicott,Grass,Fairy, 549 | petilil,Grass,, 550 | lilligant,Grass,, 551 | basculin-red-striped,Water,, 552 | sandile,Ground,Dark, 553 | krokorok,Ground,Dark, 554 | krookodile,Ground,Dark, 555 | darumaka,Fire,, 556 | darmanitan-standard,Fire,, 557 | maractus,Grass,, 558 | dwebble,Bug,Rock, 559 | crustle,Bug,Rock, 560 | scraggy,Dark,Fighting, 561 | scrafty,Dark,Fighting, 562 | sigilyph,Psychic,Flying, 563 | yamask,Ghost,, 564 | cofagrigus,Ghost,, 565 | tirtouga,Water,Rock, 566 | carracosta,Water,Rock, 567 | archen,Rock,Flying, 568 | archeops,Rock,Flying, 569 | trubbish,Poison,, 570 | garbodor,Poison,, 571 | zorua,Dark,, 572 | zoroark,Dark,, 573 | minccino,Normal,, 574 | cinccino,Normal,, 575 | gothita,Psychic,, 576 | gothorita,Psychic,, 577 | gothitelle,Psychic,, 578 | solosis,Psychic,, 579 | duosion,Psychic,, 580 | reuniclus,Psychic,, 581 | ducklett,Water,Flying, 582 | swanna,Water,Flying, 583 | vanillite,Ice,, 584 | vanillish,Ice,, 585 | vanilluxe,Ice,, 586 | deerling,Normal,Grass, 587 | sawsbuck,Normal,Grass, 588 | emolga,Electric,Flying, 589 | karrablast,Bug,, 590 | escavalier,Bug,Steel, 591 | foongus,Grass,Poison, 592 | amoonguss,Grass,Poison, 593 | frillish,Water,Ghost, 594 | jellicent,Water,Ghost, 595 | alomomola,Water,, 596 | joltik,Bug,Electric, 597 | galvantula,Bug,Electric, 598 | ferroseed,Grass,Steel, 599 | ferrothorn,Grass,Steel, 600 | klink,Steel,, 601 | klang,Steel,, 602 | klinklang,Steel,, 603 | tynamo,Electric,, 604 | eelektrik,Electric,, 605 | eelektross,Electric,, 606 | elgyem,Psychic,, 607 | beheeyem,Psychic,, 608 | litwick,Ghost,Fire, 609 | lampent,Ghost,Fire, 610 | chandelure,Ghost,Fire, 611 | axew,Dragon,, 612 | fraxure,Dragon,, 613 | haxorus,Dragon,, 614 | cubchoo,Ice,, 615 | beartic,Ice,, 616 | cryogonal,Ice,, 617 | shelmet,Bug,, 618 | accelgor,Bug,, 619 | stunfisk,Ground,Electric, 620 | mienfoo,Fighting,, 621 | mienshao,Fighting,, 622 | druddigon,Dragon,, 623 | golett,Ground,Ghost, 624 | golurk,Ground,Ghost, 625 | pawniard,Dark,Steel, 626 | bisharp,Dark,Steel, 627 | bouffalant,Normal,, 628 | rufflet,Normal,Flying, 629 | braviary,Normal,Flying, 630 | vullaby,Dark,Flying, 631 | mandibuzz,Dark,Flying, 632 | heatmor,Fire,, 633 | durant,Bug,Steel, 634 | deino,Dark,Dragon, 635 | zweilous,Dark,Dragon, 636 | hydreigon,Dark,Dragon, 637 | larvesta,Bug,Fire, 638 | volcarona,Bug,Fire, 639 | cobalion,Steel,Fighting, 640 | terrakion,Rock,Fighting, 641 | virizion,Grass,Fighting, 642 | tornadus-incarnate,Flying,, 643 | thundurus-incarnate,Electric,Flying, 644 | reshiram,Dragon,Fire, 645 | zekrom,Dragon,Electric, 646 | landorus-incarnate,Ground,Flying, 647 | kyurem,Dragon,Ice, 648 | keldeo-ordinary,Water,Fighting, 649 | meloetta-aria,Normal,Psychic, 650 | genesect,Bug,Steel, 651 | chespin,Grass,, 652 | quilladin,Grass,, 653 | chesnaught,Grass,Fighting, 654 | fennekin,Fire,, 655 | braixen,Fire,, 656 | delphox,Fire,Psychic, 657 | froakie,Water,, 658 | frogadier,Water,, 659 | greninja,Water,Dark, 660 | bunnelby,Normal,, 661 | diggersby,Normal,Ground, 662 | fletchling,Normal,Flying, 663 | fletchinder,Fire,Flying, 664 | talonflame,Fire,Flying, 665 | scatterbug,Bug,, 666 | spewpa,Bug,, 667 | vivillon,Bug,Flying, 668 | litleo,Fire,Normal, 669 | pyroar,Fire,Normal, 670 | flabebe,Fairy,, 671 | floette,Fairy,, 672 | florges,Fairy,, 673 | skiddo,Grass,, 674 | gogoat,Grass,, 675 | pancham,Fighting,, 676 | pangoro,Fighting,Dark, 677 | furfrou,Normal,, 678 | espurr,Psychic,, 679 | meowstic-male,Psychic,, 680 | honedge,Steel,Ghost, 681 | doublade,Steel,Ghost, 682 | aegislash-blade,Steel,Ghost, 683 | spritzee,Fairy,, 684 | aromatisse,Fairy,, 685 | swirlix,Fairy,, 686 | slurpuff,Fairy,, 687 | inkay,Dark,Psychic, 688 | malamar,Dark,Psychic, 689 | binacle,Rock,Water, 690 | barbaracle,Rock,Water, 691 | skrelp,Poison,Water, 692 | dragalge,Poison,Dragon, 693 | clauncher,Water,, 694 | clawitzer,Water,, 695 | helioptile,Electric,Normal, 696 | heliolisk,Electric,Normal, 697 | tyrunt,Rock,Dragon, 698 | tyrantrum,Rock,Dragon, 699 | amaura,Rock,Ice, 700 | aurorus,Rock,Ice, 701 | sylveon,Fairy,, 702 | hawlucha,Fighting,Flying, 703 | dedenne,Electric,Fairy, 704 | carbink,Rock,Fairy, 705 | goomy,Dragon,, 706 | sliggoo,Dragon,, 707 | goodra,Dragon,, 708 | klefki,Steel,Fairy, 709 | phantump,Ghost,Grass, 710 | trevenant,Ghost,Grass, 711 | pumpkaboo-average,Ghost,Grass, 712 | gourgeist-average,Ghost,Grass, 713 | bergmite,Ice,, 714 | avalugg,Ice,, 715 | noibat,Flying,Dragon, 716 | noivern,Flying,Dragon, 717 | xerneas,Fairy,, 718 | yveltal,Dark,Flying, 719 | zygarde-50,Dragon,Ground, 720 | diancie,Rock,Fairy, 721 | hoopa-confined,Psychic,Ghost, 722 | volcanion,Fire,Water, 723 | rowlet,Grass,Flying, 724 | dartrix,Grass,Flying, 725 | decidueye,Grass,Ghost, 726 | litten,Fire,, 727 | torracat,Fire,, 728 | incineroar,Fire,Dark, 729 | popplio,Water,, 730 | brionne,Water,, 731 | primarina,Water,Fairy, 732 | pikipek,Normal,Flying, 733 | trumbeak,Normal,Flying, 734 | toucannon,Normal,Flying, 735 | yungoos,Normal,, 736 | gumshoos,Normal,, 737 | grubbin,Bug,, 738 | charjabug,Bug,Electric, 739 | vikavolt,Bug,Electric, 740 | crabrawler,Fighting,, 741 | crabominable,Fighting,Ice, 742 | oricorio-baile,Fire,Flying, 743 | cutiefly,Bug,Fairy, 744 | ribombee,Bug,Fairy, 745 | rockruff,Rock,, 746 | lycanroc-midday,Rock,, 747 | wishiwashi-solo,Water,, 748 | mareanie,Poison,Water, 749 | toxapex,Poison,Water, 750 | mudbray,Ground,, 751 | mudsdale,Ground,, 752 | dewpider,Water,Bug, 753 | araquanid,Water,Bug, 754 | fomantis,Grass,, 755 | lurantis,Grass,, 756 | morelull,Grass,Fairy, 757 | shiinotic,Grass,Fairy, 758 | salandit,Poison,Fire, 759 | salazzle,Poison,Fire, 760 | stufful,Normal,Fighting, 761 | bewear,Normal,Fighting, 762 | bounsweet,Grass,, 763 | steenee,Grass,, 764 | tsareena,Grass,, 765 | comfey,Fairy,, 766 | oranguru,Normal,Psychic, 767 | passimian,Fighting,, 768 | wimpod,Bug,Water, 769 | golisopod,Bug,Water, 770 | sandygast,Ghost,Ground, 771 | palossand,Ghost,Ground, 772 | pyukumuku,Water,, 773 | type-null,Normal,, 774 | silvally,Normal,, 775 | minior-meteor,Rock,Flying, 776 | komala,Normal,, 777 | turtonator,Fire,Dragon, 778 | togedemaru,Electric,Steel, 779 | mimikyu,Ghost,Fairy, 780 | bruxish,Water,Psychic, 781 | drampa,Normal,Dragon, 782 | dhelmise,Ghost,Grass, 783 | jangmo-o,Dragon,, 784 | hakamo-o,Dragon,Fighting, 785 | kommo-o,Dragon,Fighting, 786 | tapu-koko,Electric,Fairy, 787 | tapu-lele,Psychic,Fairy, 788 | tapu-bulu,Grass,Fairy, 789 | tapu-fini,Water,Fairy, 790 | cosmog,Psychic,, 791 | cosmoem,Psychic,, 792 | solgaleo,Psychic,Steel, 793 | lunala,Psychic,Ghost, 794 | nihilego,Rock,Poison, 795 | buzzwole,Bug,Fighting, 796 | pheromosa,Bug,Fighting, 797 | xurkitree,Electric,, 798 | celesteela,Steel,Flying, 799 | kartana,Grass,Steel, 800 | guzzlord,Dark,Dragon, 801 | necrozma,Psychic,, 802 | magearna,Steel,Fairy, 803 | marshadow,Fighting,Ghost, 804 | poipole,Poison,, 805 | naganadel,Poison,Dragon, 806 | stakataka,Rock,Steel, 807 | blacephalon,Fire,Ghost, 808 | zeraora,Electric,, 809 | meltan,Steel,, 810 | melmetal,Steel,, -------------------------------------------------------------------------------- /sat_map3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/sat_map3.jpg -------------------------------------------------------------------------------- /space.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/space.jpg -------------------------------------------------------------------------------- /src/01_black_and_white.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import cv2 3 | 4 | img = cv2.imread("ada.jpg", 0) 5 | cv2.imwrite("ada_bw.jpg", img) 6 | 7 | from matplotlib import pyplot as plt 8 | img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 9 | plt.imshow(img) 10 | plt.show() 11 | -------------------------------------------------------------------------------- /src/02_basics_of_images.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import cv2 3 | 4 | def showImage(img): 5 | from matplotlib import pyplot as plt 6 | img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 7 | plt.imshow(img) 8 | plt.show() 9 | 10 | def getImageWithRedColorOnly(img): 11 | altura, largura, cores = img.shape 12 | for y in range(0, altura): 13 | for x in range(0, largura): 14 | azul = img.item(y, x, 0) #posição x, y e a coordenada de cor (0 é azul) 15 | verde = img.item(y, x, 1) #posição x, y e a coordenada de cor (1 é verde) 16 | vermelho = img.item(y, x, 2) #posição x, y e a coordenada de cor (2 é vermelho) 17 | 18 | img.itemset((y, x, 0), 0) #na posição x, y e coordenada azul, atribui-se o valor 0 19 | img.itemset((y, x, 1), 0) #na posição x, y e coordenada vermelha, atribui-se o valor 0 20 | #como vamos manter o vermelho como está, não é necessário adicionar uma chamada para tal 21 | 22 | return img 23 | 24 | def main(): 25 | img = cv2.imread("ada.jpg") 26 | print("As dimensões dessa imagem são: " + str(img.shape)) 27 | 28 | eye = img[168:190,97:124] 29 | img[137 : 137 + eye.shape[0] , 141 : 141 + eye.shape[1]] = eye 30 | showImage(img) 31 | 32 | main() 33 | -------------------------------------------------------------------------------- /src/03_video_resize_overlay.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import cv2 3 | 4 | def showImage(img): 5 | from matplotlib import pyplot as plt 6 | imgMPLIB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 7 | plt.imshow(imgMPLIB) 8 | plt.show() 9 | 10 | def saveBlueImage(img, filename): 11 | altura, largura, canais = img.shape 12 | for y in range(0, altura): 13 | for x in range(0, largura): 14 | azul = img.item(y, x, 0) 15 | verde = img.item(y, x, 1) 16 | vermelho = img.item(y, x, 2) 17 | 18 | #print(x, y, ":", vermelho, verde, azul) 19 | #imgOpenCV.itemset((y, x, 0), 0) 20 | img.itemset((y, x, 1), 0) 21 | img.itemset((y, x, 2), 0) 22 | cv2.imwrite(filename, img) 23 | 24 | def saveResizedVideo(inputFile, outputFile): 25 | cap = cv2.VideoCapture(inputFile) 26 | 27 | fourcc = cv2.VideoWriter_fourcc('X', 'V', 'I', 'D') 28 | out = cv2.VideoWriter(outputFile, fourcc, 20.0, (640, 480)) 29 | frames = 0 30 | 31 | while(cap.isOpened()): 32 | ret, frame = cap.read() 33 | 34 | if not ret or frames > 200: 35 | print("FINISHED!") 36 | break 37 | 38 | newFrame = cv2.resize(frame, (640, 480), interpolation = cv2.INTER_AREA) 39 | out.write(newFrame) 40 | frames += 1 41 | 42 | cap.release() 43 | out.release() 44 | 45 | def main(): 46 | #imgOpenCV = cv2.imread("ada.jpg") 47 | #saveBlueImage(imgOpenCV, "novaImagemAda.jpg") 48 | #saveResizedVideo("k.mkv", "output.avi") 49 | #showImage(imgOpenCV) 50 | thumbnail = cv2.imread("ARTIGOS.jpg") 51 | logo = cv2.imread("logosvbr.png") 52 | logo = cv2.resize(logo, (300, 300)) 53 | 54 | thumbH, thumbW, _ = thumbnail.shape 55 | logoH, logoW, _ = logo.shape 56 | 57 | crop = thumbnail[thumbH - logoH:, thumbW - logoW:] 58 | logoGray = cv2.cvtColor(logo, cv2.COLOR_BGR2GRAY) 59 | ret, maskLogo = cv2.threshold(logoGray, 100, 255, cv2.THRESH_BINARY) 60 | fundo = cv2.bitwise_and(crop, crop, mask = maskLogo) 61 | 62 | maskLogoInv = cv2.bitwise_not(maskLogo) 63 | frente = cv2.bitwise_and(logo, logo, mask = maskLogoInv) 64 | imgJunta = cv2.add(frente, fundo) 65 | 66 | thumbnail[thumbH - logoH:, thumbW - logoW:] = imgJunta 67 | showImage(thumbnail) 68 | 69 | if __name__ == "__main__": 70 | main() 71 | -------------------------------------------------------------------------------- /src/04_other_basic_operations.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import cv2 3 | from matplotlib import pyplot as plt 4 | 5 | def showImage(img): 6 | imgMPLIB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 7 | plt.imshow(imgMPLIB) 8 | plt.show() 9 | 10 | def showMultipleImageGrid(imgsArray, titlesArray, x, y): 11 | if(x < 1 or y < 1): 12 | print("ERRO: X e Y não podem ser zero ou abaixo de zero!") 13 | return 14 | elif(x == 1 and y == 1): 15 | showImageGrid(imgsArray, titlesArray) 16 | elif(x == 1): 17 | fig, axis = plt.subplots(y) 18 | fig.suptitle(titlesArray) 19 | yId = 0 20 | for img in imgsArray: 21 | imgMPLIB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 22 | axis[yId].imshow(imgMPLIB) 23 | 24 | yId += 1 25 | elif(y == 1): 26 | fig, axis = plt.subplots(1, x) 27 | fig.suptitle(titlesArray) 28 | xId = 0 29 | for img in imgsArray: 30 | imgMPLIB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 31 | axis[xId].imshow(imgMPLIB) 32 | 33 | xId += 1 34 | else: 35 | fig, axis = plt.subplots(y, x) 36 | xId, yId, titleId = 0, 0, 0 37 | for img in imgsArray: 38 | imgMPLIB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 39 | axis[yId, xId].set_title(titlesArray[titleId]) 40 | axis[yId, xId].imshow(imgMPLIB) 41 | if(len(titlesArray[titleId]) == 0): 42 | axis[yId, xId].axis('off') 43 | 44 | titleId += 1 45 | xId += 1 46 | if xId == x: 47 | xId = 0 48 | yId += 1 49 | 50 | fig.tight_layout(pad=0.5) 51 | plt.show() 52 | 53 | def plotSingleImage(): 54 | #criando grid com a imagem original apenas 55 | imgOriginal = cv2.imread("ada.jpg") 56 | showImageGrid(imgOriginal, "Foto da Ada") 57 | 58 | def plotTwoImageVertical(): 59 | imgOriginal = cv2.imread("ada.jpg") 60 | imgReplicate = cv2.copyMakeBorder(imgOriginal, 200, 100, 50, 10, cv2.BORDER_REPLICATE) 61 | 62 | #criando grid com 2 imagens, a segunda com borda replicada 63 | imgsArray = [imgOriginal, imgReplicate] 64 | title = 'Imagem Original e Imagem com Borda Replicada' 65 | showMultipleImageGrid(imgsArray, title, 1, 2) 66 | 67 | def plotThreeImages(): 68 | imgOriginal = cv2.imread("ada.jpg") 69 | imgReplicate = cv2.copyMakeBorder(imgOriginal, 100, 100, 100, 100, cv2.BORDER_REPLICATE) 70 | imgReflect = cv2.copyMakeBorder(imgOriginal, 100, 100, 100, 100, cv2.BORDER_REFLECT) 71 | imgTransparent = np.ones((imgOriginal.shape[0], imgOriginal.shape[1], 4), np.uint8) * 255 72 | 73 | #criando grid com 3 imagens, a segunda com borda replicada e a terceira com borda de espelho 74 | #a ultima imagem é transparente 75 | imgsArray = [imgOriginal, imgReplicate, imgReflect, imgTransparent] 76 | titlesArray = ['Original', 'Borda Replicada', 'Borda de Espelho', ''] 77 | showMultipleImageGrid(imgsArray, titlesArray, 2, 2) 78 | 79 | def plotFourImages(): 80 | imgOriginal = cv2.imread("ada.jpg") 81 | imgReplicate = cv2.copyMakeBorder(imgOriginal, 100, 100, 100, 100, cv2.BORDER_REPLICATE) 82 | imgReflect = cv2.copyMakeBorder(imgOriginal, 100, 100, 100, 100, cv2.BORDER_REFLECT) 83 | imgReflect101 = cv2.copyMakeBorder(imgOriginal, 100, 100, 100, 100, cv2.BORDER_REFLECT_101) 84 | 85 | #criando grid com 4 imagens, a segunda com borda replicada e a terceira e quarta com borda de espelho 86 | imgsArray = [imgOriginal, imgReplicate, imgReflect, imgReflect101] 87 | titlesArray = ['Original', 'Borda Replicada', 'Borda de Espelho', 'Borda de Espelho 2'] 88 | showMultipleImageGrid(imgsArray, titlesArray, 2, 2) 89 | 90 | def plotSixImages(): 91 | imgOriginal = cv2.imread("ada.jpg") 92 | imgReplicate = cv2.copyMakeBorder(imgOriginal, 100, 100, 100, 100, cv2.BORDER_REPLICATE) 93 | imgReflect = cv2.copyMakeBorder(imgOriginal, 100, 100, 100, 100, cv2.BORDER_REFLECT) 94 | imgReflect101 = cv2.copyMakeBorder(imgOriginal, 100, 100, 100, 100, cv2.BORDER_REFLECT_101) 95 | imgWrap = cv2.copyMakeBorder(imgOriginal, 100, 100, 100, 100, cv2.BORDER_WRAP) 96 | 97 | BLUE = [255, 0, 0] 98 | imgConstant = cv2.copyMakeBorder(imgOriginal, 100, 100, 100, 100, cv2.BORDER_CONSTANT, value = BLUE) 99 | 100 | #criando grid com 6 imagens, a segunda com borda replicada e a terceira e quarta com borda de espelho 101 | #constant insere uma moldura e wrap só olhando pra entender =) 102 | imgsArray = [imgOriginal, imgReplicate, imgReflect, imgReflect101, imgConstant, imgWrap] 103 | titlesArray = ['Original', 'Borda Replicada', 'Borda de Espelho', 'Borda de Espelho 2', 'Moldura', 'Efeito Wrap'] 104 | showMultipleImageGrid(imgsArray, titlesArray, 3, 2) 105 | 106 | def showImageGrid(img, title): 107 | fig, axis = plt.subplots() 108 | imgMPLIB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 109 | axis.imshow(imgMPLIB) 110 | axis.set_title(title) 111 | plt.show() 112 | 113 | def plotTwoImageHorizontal(): 114 | imgOriginal = cv2.imread("ada.jpg") 115 | imgReplicate = cv2.copyMakeBorder(imgOriginal, 200, 100, 50, 25, cv2.BORDER_REPLICATE) 116 | 117 | #criando grid com 2 imagens, a segunda com borda replicada 118 | imgsArray = [imgOriginal, imgReplicate] 119 | title = 'Imagem Original e Imagem com Borda Replicada' 120 | showMultipleImageGrid(imgsArray, title, 2, 1) 121 | 122 | def main(): 123 | plotSixImages() 124 | 125 | if __name__ == "__main__": 126 | main() 127 | -------------------------------------------------------------------------------- /src/05_adding_blending.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import cv2 3 | from matplotlib import pyplot as plt 4 | 5 | def showImage(img): 6 | imgMPLIB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 7 | plt.imshow(imgMPLIB) 8 | plt.show() 9 | 10 | def showMultipleImageGrid(imgsArray, titlesArray, x, y): 11 | if(x < 1 or y < 1): 12 | print("ERRO: X e Y não podem ser zero ou abaixo de zero!") 13 | return 14 | elif(x == 1 and y == 1): 15 | showImageGrid(imgsArray, titlesArray) 16 | elif(x == 1): 17 | fig, axis = plt.subplots(y) 18 | fig.suptitle(titlesArray) 19 | yId = 0 20 | for img in imgsArray: 21 | imgMPLIB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 22 | axis[yId].imshow(imgMPLIB) 23 | 24 | yId += 1 25 | elif(y == 1): 26 | fig, axis = plt.subplots(1, x) 27 | fig.suptitle(titlesArray) 28 | xId = 0 29 | for img in imgsArray: 30 | imgMPLIB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 31 | axis[xId].imshow(imgMPLIB) 32 | 33 | xId += 1 34 | else: 35 | fig, axis = plt.subplots(y, x) 36 | xId, yId, titleId = 0, 0, 0 37 | for img in imgsArray: 38 | imgMPLIB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 39 | axis[yId, xId].set_title(titlesArray[titleId]) 40 | axis[yId, xId].imshow(imgMPLIB) 41 | if(len(titlesArray[titleId]) == 0): 42 | axis[yId, xId].axis('off') 43 | 44 | titleId += 1 45 | xId += 1 46 | if xId == x: 47 | xId = 0 48 | yId += 1 49 | 50 | fig.tight_layout(pad=0.5) 51 | plt.show() 52 | 53 | def plotAddedImages(): 54 | circleImage = cv2.imread("bin1.png") 55 | rectangleImage = cv2.imread("bin2.png") 56 | addedImage = cv2.add(circleImage, rectangleImage) 57 | addedWeightedImage = cv2.addWeighted(circleImage, 0.9, rectangleImage, 0.1, 0) 58 | 59 | #criando grid com 3 imagens, a segunda com borda replicada e a terceira com borda de espelho 60 | #a ultima imagem é transparente 61 | imgsArray = [circleImage, rectangleImage, addedImage, addedWeightedImage] 62 | titlesArray = ['Círculo', 'Retângulo', 'cv2.add()', 'cv2.addWeighted'] 63 | showMultipleImageGrid(imgsArray, titlesArray, 2, 2) 64 | 65 | #plotAddedImages() 66 | 67 | def resizeImage(image, scalePercent): 68 | width = int(image.shape[1] * scalePercent / 100) 69 | height = int(image.shape[0] * scalePercent / 100) 70 | image = cv2.resize(image, (width, height)) 71 | 72 | return image 73 | 74 | def addImageOverlay(background, foreground, translationForegroundW, translationForegroundH): 75 | backH, backW, _ = background.shape 76 | foreH, foreW, _ = foreground.shape 77 | remainingH, remainingW = backH - foreH, backW - foreW 78 | 79 | if translationForegroundH + foreH > backH: 80 | print("Erro: sobreposição com altura maior do que a permitida.") 81 | print("Posição final que altura do objeto da frente termina:", translationForegroundH + foreH) 82 | print("Altura do fundo:", backH) 83 | return 84 | 85 | if translationForegroundW + foreW > backW: 86 | print("Erro: sobreposição com largura maior do que a permitida.") 87 | print("Posição final que largura do objeto da frente termina:", translationForegroundW + foreW) 88 | print("Largura do fundo:", backW) 89 | return 90 | 91 | #parte do cenário do fundo em que a imagem será adicionada 92 | crop = background[translationForegroundH : foreH + translationForegroundH, translationForegroundW : foreW + translationForegroundW] 93 | 94 | #Transformamos o foreground em imagem com tons de cinza e criamos uma máscara binária da mesma com a binarização (cv2.threshold) 95 | foregroundGray = cv2.cvtColor(foreground, cv2.COLOR_BGR2GRAY) 96 | ret, maskFore = cv2.threshold(foregroundGray, 240, 255, cv2.THRESH_BINARY) 97 | 98 | #Agora aplicamos uma operação de AND binário na imagem recortada 'crop'. No caso, realizar a operação binária entre a mesma imagem não terá efeito. Só que, com a inclusão da máscara no terceiro parâmetro, os pixels pretos de maskFore serão ignorados e, portanto, ficarão escuros. Com isso temos a marcação em que vamos incluir o foreground posteriormente. 99 | backWithMask = cv2.bitwise_and(crop, crop, mask = maskFore) 100 | foreWithMask = cv2.bitwise_not(maskFore) 101 | foreWithMask = cv2.bitwise_and(foreground, foreground, mask = foreWithMask) 102 | 103 | #Faremos a composição entre 'frente' e 'fundo', compondo o foreground na imagem extraída do background. 104 | combinedImage = cv2.add(foreWithMask, backWithMask) 105 | 106 | #Adicionamos a imagem gerada no background final. 107 | copyImage = background.copy() 108 | copyImage[translationForegroundH:foreH + translationForegroundH, translationForegroundW:foreW + translationForegroundW] = combinedImage 109 | 110 | return copyImage 111 | 112 | def addBlendingEffect(firstImage, secondImage, weight): 113 | firstImageGray = cv2.cvtColor(firstImage, cv2.COLOR_BGR2GRAY) 114 | secondImageGray = cv2.cvtColor(secondImage, cv2.COLOR_BGR2GRAY) 115 | 116 | mask = firstImageGray - secondImageGray 117 | ret, mask = cv2.threshold(mask, 0, 255, cv2.THRESH_BINARY) 118 | 119 | copyImg = firstImage.copy() 120 | altura, largura, = mask.shape 121 | for y in range(0, altura): 122 | for x in range(0, largura): 123 | if mask.item(y, x) == 255: 124 | blendingPixelBlue = firstImage.item(y, x, 0) * (1.0 - weight) + secondImage.item(y, x, 0) * weight 125 | blendingPixelGreen = firstImage.item(y, x, 1) * (1.0 - weight) + secondImage.item(y, x, 1) * weight 126 | blendingPixelRed = firstImage.item(y, x, 2) * (1.0 - weight) + secondImage.item(y, x, 2) * weight 127 | 128 | copyImg.itemset((y, x, 0), blendingPixelBlue) 129 | copyImg.itemset((y, x, 1), blendingPixelGreen) 130 | copyImg.itemset((y, x, 2), blendingPixelRed) 131 | 132 | return copyImg 133 | 134 | def memeGeneratorWithBlending(fala1, imagem1, fala2, imagem2, fundo): 135 | atilaFeliz = cv2.imread(imagem1) 136 | background = cv2.imread(fundo) 137 | atilaFeliz = resizeImage(atilaFeliz, 250) 138 | finalImageUmAtila = addImageOverlay(background, atilaFeliz, 380, 465) 139 | 140 | atilaBravo = cv2.imread(imagem2) 141 | atilaBravo = resizeImage(atilaBravo, 250) 142 | finalImageDoisAtilas = addImageOverlay(finalImageUmAtila, atilaBravo, 930, 460) 143 | 144 | 145 | finalImage = addBlendingEffect(finalImageUmAtila, finalImageDoisAtilas, 0.4) 146 | 147 | finalImage = cv2.putText(finalImage, fala1, (210, 420), cv2.FONT_HERSHEY_SIMPLEX , 148 | 2.5, (0, 0, 0), 5, cv2.LINE_AA) 149 | 150 | finalImage = cv2.putText(finalImage, fala2, (1030, 1150), cv2.FONT_HERSHEY_SIMPLEX , 151 | 2.5, (0, 0, 0) , 5, cv2.LINE_AA) 152 | 153 | cv2.imwrite("memeatila.png", finalImage) 154 | 155 | memeGeneratorWithBlending('Respeito seu argumento!', "atila_feliz.png", 'Burro pra caramba...', "atila_bravo.png", "fundo2.jpg") 156 | -------------------------------------------------------------------------------- /src/ARTIGOS.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/src/ARTIGOS.jpg -------------------------------------------------------------------------------- /src/ada.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/src/ada.jpg -------------------------------------------------------------------------------- /src/ada_bw.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/src/ada_bw.jpg -------------------------------------------------------------------------------- /src/ada_red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/src/ada_red.jpg -------------------------------------------------------------------------------- /src/atila_bravo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/src/atila_bravo.png -------------------------------------------------------------------------------- /src/atila_feliz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/src/atila_feliz.png -------------------------------------------------------------------------------- /src/atilameme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/src/atilameme.png -------------------------------------------------------------------------------- /src/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/src/background.jpg -------------------------------------------------------------------------------- /src/bin1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/src/bin1.png -------------------------------------------------------------------------------- /src/bin2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/src/bin2.png -------------------------------------------------------------------------------- /src/corona.mkv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/src/corona.mkv -------------------------------------------------------------------------------- /src/fundo2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/src/fundo2.jpg -------------------------------------------------------------------------------- /src/logosvbr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/src/logosvbr.png -------------------------------------------------------------------------------- /src/memeatila.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/src/memeatila.png -------------------------------------------------------------------------------- /src/novaImagemAda.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/src/novaImagemAda.jpg -------------------------------------------------------------------------------- /sudoku.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/sudoku.jpg -------------------------------------------------------------------------------- /svbr.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/svbr.jpeg -------------------------------------------------------------------------------- /taj.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/taj.jpg -------------------------------------------------------------------------------- /tijolos.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucaslattari/Python_OpenCV4/e9ec9d817e6e8bc92d7becd49895835e792a5ef5/tijolos.jpg --------------------------------------------------------------------------------