Last active
December 12, 2020 20:27
-
-
Save Feyn-Man/7900d08288d4b6f7cae8f6a21c849898 to your computer and use it in GitHub Desktop.
Overlay RGB images.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"name": "Overlay RGB images.ipynb", | |
"provenance": [], | |
"authorship_tag": "ABX9TyM83BhIftm1C026DQE7KmBU", | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3" | |
} | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/Feyn-Man/7900d08288d4b6f7cae8f6a21c849898/overlay-rgb-images.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "6n1hs4MCI8gJ" | |
}, | |
"source": [ | |
"# Overlay of RGB images\r\n", | |
"The aim of this notebook is to overlay two RGB images with transparency." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "64C-hkVpIHAo" | |
}, | |
"source": [ | |
"import numpy as np\r\n", | |
"import cv2 as cv\r\n", | |
"\r\n", | |
"import matplotlib.pyplot as plt" | |
], | |
"execution_count": 1, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "qMO5ApRRHuhD" | |
}, | |
"source": [ | |
"def my_filled_circle(img, center):\r\n", | |
" thickness = -1 #filled circle\r\n", | |
" line_type = 8\r\n", | |
" cv.circle(img,\r\n", | |
" center,\r\n", | |
" 5,\r\n", | |
" (0, 0, 255),\r\n", | |
" thickness,\r\n", | |
" line_type)" | |
], | |
"execution_count": 2, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 284 | |
}, | |
"id": "qi9amFz3IC6g", | |
"outputId": "d1431187-6f92-44e9-823e-b1c551a7de4f" | |
}, | |
"source": [ | |
"size = 20, 20, 3\r\n", | |
"img = np.zeros(size, dtype=np.uint8)\r\n", | |
"my_filled_circle(img, (10,10))\r\n", | |
"plt.imshow(img)" | |
], | |
"execution_count": 3, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"<matplotlib.image.AxesImage at 0x7f7fd8057e10>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 3 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQUAAAD4CAYAAADl7fPiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAANXklEQVR4nO3df6jd913H8efLdPWPmtl2pVl/RFdmKLRD4giZwzpS52oaitlkjBTRuBVShwUFQarCWgaConVMHB3ZFtqJaydiWHD9FavYDfajaUl/rrWxZPRes4Sus1vZoKZ9+8f9ptzPzTnJzflxz7mnzwcczvl+v59zvp/vPemr31/n805VIUkn/NSkOyBpuhgKkhqGgqSGoSCpYShIapw16Q70ksRLItKYVVV6zXdPQVLDUJDUGCoUkmxN8mySQ0lu7rH8p5N8uVv+rSTvGGZ9ksZv4FBIsgb4DHAtcAVwfZIrljS7AfhBVf0C8CngrwZdn6SVMcyewmbgUFU9X1WvAncD25e02Q7c2b3+Z+D9SXqe3JA0HYYJhUuAFxZNz3XzerapquPAy8Dben1Ykl1JDiQ5MESfJA1pai5JVtVuYDd4SVKapGH2FOaB9YumL+3m9WyT5CzgZ4HvD7FOSWM2TCg8DGxIclmSs4EdwL4lbfYBO7vXHwb+vfyttjTVBj58qKrjSW4C7gfWAHuq6qkknwQOVNU+4AvAPyQ5BLzEQnBImmKZxv9xe05BGj9vc5a0LIaCpIahIKlhKEhqGAqSGoaCpIahIKlhKEhqGAqSGoaCpIahIKlhKEhqGAqSGoaCpIahIKlhKEhqGAqSGoaCpMYwFaLWJ/mPJE8neSrJH/ZosyXJy0kOdo9PDNddSeM2TN2H48AfV9WjSdYCjyTZX1VPL2n3taq6boj1SFpBA+8pVNWRqnq0e/0j4DucXCFK0iozknMKXTXpXwK+1WPxe5M8luTeJFee4jMsGydNgaGHeE/yM8B/An9RVf+yZNlbgder6pUk24BPV9WGZXymQ7xLY9ZviPehQiHJW4B/Be6vqr9dRvvDwKaqevE07QwFacxGXvehKyn/BeA7/QIhydtPlJ5Psrlbn7UkpSk2zNWHXwF+B3giycFu3p8BPwdQVZ9loX7kx5McB34C7LCWpDTdLBsnvUlZNk7SshgKkhqGgqSGoSCpYShIahgKkhqGgqSGoSCpYShIahgKkhqGgqSGoSCpYShIahgKkhqGgqTGMIOsSIucyRAYPX/GrynhnoKkhqEgqTF0KCQ5nOSJrizcSTUbsuDvkhxK8niSdw+7TknjM6pzClefYtj2a4EN3eM9wO3ds6QptBKHD9uBL9aCbwLnJrloBdYraQCjCIUCHkjySJJdPZZfArywaHqOHjUnLRsnTYdRHD5cVVXzSS4E9id5pqoeOtMPqardwG5wiHdpkobeU6iq+e75GLAX2LykyTywftH0pd08SVNoqFBIck6StSdeA9cATy5ptg/43e4qxC8DL1fVkWHWK2l8hj18WAfs7cpFngV8qaruS/L78EbpuHuAbcAh4MfAR4dcp6QxsmzcTPDPdea81dqycZKWxVCQ1DAUJDUMBUkNQ0FSw1CQ1DAUJDUMBUkNQ0FSw1CQ1HA056nlrcvjtdy/75vvdmj3FCQ1DAVJDUNBUsNQkNQwFCQ1DAVJDUNBUmPgUEhyeVcq7sTjh0n+aEmbLUleXtTmE8N3WdI4DXzzUlU9C2wESLKGhWHb9/Zo+rWqum7Q9UhaWaM6fHg/8N9V9d0RfZ6kCRlVKOwA7uqz7L1JHktyb5Ir+32AZeOk6TD0EO9Jzgb+B7iyqo4uWfZW4PWqeiXJNuDTVbVhGZ/pjf/+9mFKzO5vH8Y5xPu1wKNLA6Fb6Q+r6pXu9T3AW5JcMIJ1ShqTUYTC9fQ5dEjy9nTlo5Js7tb3/RGsU9KYDPXT6a5+5AeAGxfNW1wy7sPAx5McB34C7KhpLEkl6Q2WjZta/gmmg+cUJL3JGQqSGoaCpIahIKlhKEhqGAqSGoaCpIahIKlhKEhqGAqSGoaCpIahIKlhKEhqGAqSGoaCpIahIKkx1MhLOlMOnLL6nMl3NhsDsrinIKmxrFBIsifJsSRPLpp3fpL9SZ7rns/r896dXZvnkuwcVccljcdy9xTuALYumXcz8GBXx+HBbrqR5HzgFuA9wGbgln7hIWk6LCsUquoh4KUls7cDd3av7wQ+2OOtvwHsr6qXquoHwH5ODhdJU2SYcwrrqupI9/p7wLoebS4BXlg0PdfNkzSlRnL1oapq2GHZk+wCdo2iP5IGN8yewtEkFwF0z8d6tJkH1i+avrSbd5Kq2l1Vm6pq0xB9kjSkYUJhH3DiasJO4Cs92twPXJPkvO4E4zXdPEnTqqpO+2ChVuQR4P9YOC9wA/A2Fq46PAf8G3B+13YT8PlF7/0YcKh7fHSZ66vZfJSPmX5M+t/XmT36/fdn2bgVNaObpc7quqOxX9k4b3NeUWfyj8YAmQ6r6z/0UfA2Z0kNQ0FSw1CQ1DAUJDUMBUkNQ0FSw1CQ1DAUJDUMBUkNQ0FSw1CQ1DAUJDUMBUkNQ0FSw1CQ1DAUJDUMBUkNQ0FS47Sh0KeO5F8neSbJ40n2Jjm3z3sPJ3kiycEkB0bZcUnjsZw9hTs4udTbfuBdVfWLwH8Bf3qK919dVRut5yCtDqcNhV51JKvqgao63k1+k4UiL5JmwCjOKXwMuLfPsgIeSPJIVxauryS7khzwMEOarKGGeE/y58Bx4B/7NLmqquaTXAjsT/JMt+dxkqraDezuPtfxzaUJGXhPIcnvAdcBv119KspU1Xz3fAzYC2wedH2SVsZAoZBkK/AnwG9W1Y/7tDknydoTr1moI/lkr7aSpsdyLkneBXwDuDzJXJIbgL8H1rJwSHAwyWe7thcnuad76zrg60keA74NfLWq7hvLVkgaGWtJTi3/BNNhdsvG9asl6R2NkhqGgqSGoSCpYShIahgKkhpD3dGocTqTs95eqThzs3tVYVjuKUhqGAqSGoaCpIahIKlhKEhqGAqSGoaCpIahIKlhKEhqeEfjTJiGu/PO5K7Kaeiv+nFPQVLDUJDUGLRs3K1J5rvxGQ8m2dbnvVuTPJvkUJKbR9lxSeNx2jEak7wPeAX4YlW9q5t3K/BKVf3NKd63hoWSch8A5oCHgeur6unTdsoxGlchzymsNgOP0dirbNwybQYOVdXzVfUqcDewfYDPkbSChjmncFNXdXpPkvN6LL8EeGHR9Fw3ryfLxknTYdBQuB14J7AROALcNmxHqmp3VW2yOrU0WQOFQlUdrarXqup14HP0Lgc3D6xfNH1pN0/SFBu0bNxFiyY/RO9ycA8DG5JcluRsYAewb5D1SVo5p72jsSsbtwW4IMkccAuwJclGFk45HwZu7NpeDHy+qrZV1fEkNwH3A2uAPVX11Fi2QtLIWDZOepOybJykZTEUJDUMBUkNQ0FSw1CQ1DAUJDUMBUkNQ0FSw1CQ1DAUJDUMBUkNQ0FSw1CQ1DAUJDUMBUkNQ0FSw1CQ1DAUJDWWM0bjHuA64NiiClFfBi7vmpwL/G9Vbezx3sPAj4DXgOMO3y5Nv4HKxi1ZfhvwclV9sseyw8CmqnrxjDrlGI3S2PUbo/G0ewpV9VCSd/RaliTAR4BfG6ZzkqbHsOcUfhU4WlXP9VlewANJHkmy61QfZNk4aTqcdk/hNK4H7jrF8quqaj7JhcD+JM90BWtPUlW7gd3g4YM0SQPvKSQ5C/gt4Mv92lTVfPd8DNhL7/JykqbIMIcPvw48U1VzvRYmOSfJ2hOvgWvoXV5O0hQ5bSh0ZeO+AVyeZC7JDd2iHSw5dEhycZJ7usl1wNeTPAZ8G/hqVd03uq5LGgfLxklvUpaNk7QshoKkhqEgqWEoSGoYCpIahoKkhqEgqWEoSGoYCpIahoKkhqEgqWEoSGoYCpIahoKkhqEgqWEoSGoMO3DruLwIfHfJvAu6+bNmVrcLZnfbZmG7fr7fgqkceamXJAdmscLUrG4XzO62zep2neDhg6SGoSCpsZpCYfekOzAms7pdMLvbNqvbBayicwqSVsZq2lOQtAIMBUmNVREKSbYmeTbJoSQ3T7o/o5LkcJInkhxc7dW2k+xJcizJk4vmnZ9kf5LnuufzJtnHQfTZrluTzHff28Ek2ybZx1Gb+lBIsgb4DHAtcAVwfZIrJturkbq6qjbOwHXvO4CtS+bdDDxYVRuAB7vp1eYOTt4ugE9139vGqrqnx/JVa+pDgYVK1Yeq6vmqehW4G9g+4T5piap6CHhpyeztwJ3d6zuBD65op0agz3bNtNUQCpcALyyanuvmzYICHkjySJJdk+7MGKyrqiPd6++xUHR4VtyU5PHu8GLVHRadymoIhVl2VVW9m4VDoz9I8r5Jd2hcauHa96xc/74deCewETgC3DbZ7ozWagiFeWD9oulLu3mrXlXNd8/HgL0sHCrNkqNJLgLono9NuD8jUVVHq+q1qnod+Bwz9r2thlB4GNiQ5LIkZwM7gH0T7tPQkpyTZO2J18A1wJOnfteqsw/Y2b3eCXxlgn0ZmRNB1/kQM/a9TetPp99QVceT3ATcD6wB9lTVUxPu1iisA/YmgYXv4UtVdd9kuzS4JHcBW4ALkswBtwB/CfxTkhtY+Cn8RybXw8H02a4tSTaycDh0GLhxYh0cA29zltRYDYcPklaQoSCpYShIahgKkhqGgqSGoSCpYShIavw//oJKKkFbFBAAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 288 | |
}, | |
"id": "4ER0Gkn_IgCy", | |
"outputId": "2b9d3f2d-582c-4bf8-d322-677f5c9f4b27" | |
}, | |
"source": [ | |
"size = 512,512,3\r\n", | |
"background = np.ones(size, dtype=np.uint8)\r\n", | |
"background[...,0] = background[...,0]*255\r\n", | |
"background[...,1] = background[...,1]*0\r\n", | |
"background[...,2] = background[...,2]*0\r\n", | |
"plt.imshow(background)" | |
], | |
"execution_count": 4, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"<matplotlib.image.AxesImage at 0x7f7fd7badda0>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 4 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "-Lcnkb49JHlY" | |
}, | |
"source": [ | |
"Now we want to put the blue circle on the red background.</br>\r\n", | |
"According to [this](https://stackoverflow.com/questions/60561680/masked-rgb-image-does-not-appear-masked-with-imshow) and [matplotlib documentation](https://matplotlib.org/api/_as_gen/matplotlib.pyplot.imshow.html) when working with RGB images it's necessary to specify a 4-th channel to add transparency. We will mask the black color in the first image with the transoarency layer." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 284 | |
}, | |
"id": "s7dYP0HuKHEB", | |
"outputId": "d9c39a31-6260-4744-8960-823453e6445a" | |
}, | |
"source": [ | |
"mask=(img[:,:,0]==0) & (img[:,:,1]==0) & (img[:,:,2]==0) #select black\r\n", | |
"ma_img_rgb = np.dstack([img, (~mask).astype(np.uint8)*255]) #adding the 4-th channel\r\n", | |
"plt.imshow(background)\r\n", | |
"plt.imshow(ma_img_rgb)" | |
], | |
"execution_count": 5, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"<matplotlib.image.AxesImage at 0x7f7fd8046438>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 5 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQUAAAD4CAYAAADl7fPiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAANdElEQVR4nO3df6hf9X3H8edrUfeHS6cumvojm9IFIZaRlZCuzI24ti4GWdpRusjYsk3QlQkbDIbboJaOQcdw0lGxpF3QjlYd20IDjT+CG7OF/jBK/NXqzCTF3KVJrZ1WWpDoe3/cc+V+br735ub7497v/eb5gMv3nM/5fM/5HL/68pzzPd/zTlUhSTN+arkHIGm8GAqSGoaCpIahIKlhKEhqnLXcA+hlTVKXL/cgpAl2GHi5Kr2WjWUoXA4cWO5BSBNs0wLLPH2Q1BgoFJJsTfJ8kkNJbu2x/KeT3N8t/2aSywfZnqTR6zsUkqwC7gSuAzYANyTZMKfbjcAPq+oXgTuAv+t3e5KWxiBHCpuBQ1X1YlW9AdwHbJ/TZztwTzf9r8D7k/S8uCFpPAwSCpcCL82aP9K19exTVSeAV4Gf67WyJDclOZDkwPcHGJSkwYzNhcaq2lVVm6pq04XLPRjpDDZIKEwB62bNX9a19eyT5CzgZ4EfDLBNSSM2SCg8BqxPckWSc4AdwN45ffYCO7vpjwD/Uf5WWxprfd+8VFUnktwCPASsAnZX1bNJPgkcqKq9wD8B/5zkEPAK08EhaYxlHP/HvSkp72iURmcTcGCe25zH5kKjpPFgKEhqGAqSGoaCpIahIKlhKEhqGAqSGoaCpIahIKlhKEhqGAqSGoaCpIahIKlhKEhqGAqSGoaCpIahIKlhKEhqDFIhal2S/0zy7STPJvnTHn22JHk1ycHu7+ODDVfSqA1SdfoE8OdV9USS1cDjSfZX1bfn9PtqVV0/wHYkLaG+jxSq6mhVPdFN/wj4DidXiJK0wgzlmkJXTfqXgW/2WPy+JE8meSDJVQusw7Jx0hgY+BHvSX4G+C/gb6vq3+csewfwVlW9nmQb8OmqWn+qdfqId2m0RvaI9yRnA/8GfHFuIABU1WtV9Xo3vQ84O8maQbYpabQG+fYhTFeA+k5V/cM8fd45U3o+yeZue9aSlMbYIN8+/Crwe8DTSQ52bX8F/DxAVX2W6fqRH0tyAvgJsMNaktJ4s2ycdAaybJykRTMUJDUMBUkNQ0FSw1CQ1DAUJDUMBUkNQ0FSw1CQ1DAUJDUMBUkNQ0FSw1CQ1DAUJDUMBUmNQR6yIr0tLP65HEXPn/FrTHikIKlhKEhqDBwKSQ4neborC3fSU9Qy7R+THEryVJL3DLpNSaMzrGsK11TVy/Msuw5Y3/29F7ire5U0hpbi9GE78IWa9g3gvCQXL8F2JfVhGKFQwMNJHk9yU4/llwIvzZo/Qo+ak5aNk8bDME4frq6qqSQXAfuTPFdVj57uSqpqF7ALph/xPoRxSerDwEcKVTXVvR4H9gCb53SZAtbNmr+sa5M0hgatJXluktUz08C1wDNzuu0Ffr/7FuJXgFer6ugg25U0OoOePqwF9nTlIs8CvlRVDyb5Y3i7dNw+YBtwCPgx8IcDblPSCFk2bgKczi3Gmnam32pt2ThJi2YoSGoYCpIahoKkhqEgqWEoSGoYCpIahoKkhqEgqWEoSGr4NOcx5a3Lo7XYf75n4u3QHilIahgKkhqGgqSGoSCpYShIahgKkhqGgqRG36GQ5MquVNzM32tJ/mxOny1JXp3V5+ODD1nSKPV981JVPQ9sBEiyiunHtu/p0fWrVXV9v9uRtLSGdfrwfuB/quq7Q1qfpGUyrFDYAdw7z7L3JXkyyQNJrppvBZaNk8bDwI94T3IO8L/AVVV1bM6ydwBvVdXrSbYBn66q9adap49497cP42JSf/sw6ke8Xwc8MTcQAKrqtap6vZveB5ydZM0QtilpRIYRCjcwz6lDknemKx+VZHO3vR8MYZuSRmSgn0539SM/CNw8q212ybiPAB9LcgL4CbCjxrEklaS3WTZuTHlNYTx4TUHSGc9QkNQwFCQ1DAVJDUNBUsNQkNQwFCQ1DAVJDUNBUsNQkNQwFCQ1DAVJDUNBUsNQkNQwFCQ1DAVJjYGevKTT44NTVp7T+cwm5YEsHilIaiwqFJLsTnI8yTOz2i5Isj/JC93r+fO8d2fX54UkO4c1cEmjsdgjhbuBrXPabgUe6eo4PNLNN5JcANwGvBfYDNw2X3hIGg+LCoWqehR4ZU7zduCebvoe4EM93vqbwP6qeqWqfgjs5+RwkTRGBrmmsLaqjnbT3wPW9uhzKfDSrPkjXZukMTWUC41dLYeBLq1bS1IaD4OEwrEkFwN0r8d79JkC1s2av6xrO0lV7aqqTVW16cIBBiVpMIOEwl5g5tuEncCXe/R5CLg2yfndBcZruzZJY2qxX0neC3wduDLJkSQ3Ap8CPpjkBeAD3TxJNiX5PEBVvQL8DfBY9/fJrk3SmLJs3BLyjsbJtpLuaFyobJy3OS+h0/mXxgAZDyvpP/Rh8TZnSQ1DQVLDUJDUMBQkNQwFSQ1DQVLDUJDUMBQkNQwFSQ1DQVLDUJDUMBQkNQwFSQ1DQVLDUJDUMBQkNQwFSQ1DQVLjlKEwTx3Jv0/yXJKnkuxJct487z2c5OkkB5NM4mMXpYmzmCOFuzm51Nt+4N1V9UvAfwN/ucD7r6mqjVW1qb8hSlpKpwyFXnUkq+rhqjrRzX6D6SIvkibAMK4p/BHwwDzLCng4yeNJblpoJZaNk8bDQI94T/LXwAngi/N0ubqqppJcBOxP8lx35HGSqtoF7ILpug+DjEtS//o+UkjyB8D1wO/WPBVlqmqqez0O7AE297s9SUujr1BIshX4C+C3qurH8/Q5N8nqmWmm60g+06uvpPGxmK8ke9WR/AywmulTgoNJPtv1vSTJvu6ta4GvJXkS+Bbwlap6cCR7IWlorCU5piwbNx4mtWzcQrUkvaNRUsNQkNQwFCQ1DAVJDUNBUmOgOxo1Oqdz1dtvKk7fpH6rMAweKUhqGAqSGoaCpIahIKlhKEhqGAqSGoaCpIahIKlhKEhqeEfjBBiHu/NO567KcRiv5ueRgqSGoSCp0W/ZuE8kmeqez3gwybZ53rs1yfNJDiW5dZgDlzQa/ZaNA7ijKwe3sar2zV2YZBVwJ3AdsAG4IcmGQQYrafT6Khu3SJuBQ1X1YlW9AdwHbO9jPZKW0CDXFG7pqk7vTnJ+j+WXAi/Nmj/StfVk2ThpPPQbCncB7wI2AkeB2wcdSFXtqqpNVbXpwkFXJqlvfYVCVR2rqjer6i3gc/QuBzcFrJs1f1nXJmmM9Vs27uJZsx+mdzm4x4D1Sa5Icg6wA9jbz/YkLZ1T3tHYlY3bAqxJcgS4DdiSZCPTpeYPAzd3fS8BPl9V26rqRJJbgIeAVcDuqnp2JHshaWgsGyedgSwbJ2nRDAVJDUNBUsNQkNQwFCQ1DAVJDUNBUsNQkNQwFCQ1DAVJDUNBUsNQkNQwFCQ1DAVJDUNBUsNQkNQwFCQ1DAVJjcU8o3E3cD1wvKre3bXdD1zZdTkP+L+q2tjjvYeBHwFvAieqatOQxi1pRBZTiv5u4DPAF2Yaqup3ZqaT3A68usD7r6mql/sdoKSldcpQqKpHk1zea1mSAB8FfmO4w5K0XAa9pvBrwLGqemGe5QU8nOTxJDcttCLLxknjYTGnDwu5Abh3geVXV9VUkouA/Ume6wrWnqSqdgG7YPoR7wOOS1Kf+j5SSHIW8NvA/fP1qaqp7vU4sIfe5eUkjZFBTh8+ADxXVUd6LUxybpLVM9PAtfQuLydpjJwyFLqycV8HrkxyJMmN3aIdzDl1SHJJkn3d7Frga0meBL4FfKWqHhze0CWNgmXjpDOQZeMkLZqhIKlhKEhqGAqSGoaCpIahIKlhKEhqGAqSGoaCpIahIKlhKEhqGAqSGoaCpIahIKlhKEhqGAqSGmP5kJUk3we+O6d5DTCJ9SMmdb9gcvdtEvbrF6rqwl4LxjIUeklyYBIrTE3qfsHk7tuk7tcMTx8kNQwFSY2VFAq7lnsAIzKp+wWTu2+Tul/ACrqmIGlprKQjBUlLwFCQ1FgRoZBka5LnkxxKcutyj2dYkhxO8nSSg0lWdP2bJLuTHE/yzKy2C5LsT/JC93r+co6xH/Ps1yeSTHWf28Ek25ZzjMM29qGQZBVwJ3AdsAG4IcmG5R3VUF1TVRsn4Hvvu4Gtc9puBR6pqvXAI938SnM3J+8XwB3d57axqvb1WL5ijX0oMF2p+lBVvVhVbwD3AduXeUyao6oeBV6Z07wduKebvgf40JIOagjm2a+JthJC4VLgpVnzR7q2SVDAw0keT3LTcg9mBNZW1dFu+ntMFx2eFLckeao7vVhxp0ULWQmhMMmurqr3MH1q9CdJfn25BzQqNf3d96R8/30X8C5gI3AUuH15hzNcKyEUpoB1s+Yv69pWvKqa6l6PA3uYPlWaJMeSXAzQvR5f5vEMRVUdq6o3q+ot4HNM2Oe2EkLhMWB9kiuSnAPsAPYu85gGluTcJKtnpoFrgWcWfteKsxfY2U3vBL68jGMZmpmg63yYCfvczlruAZxKVZ1IcgvwELAK2F1Vzy7zsIZhLbAnCUx/Dl+qqgeXd0j9S3IvsAVYk+QIcBvwKeBfktzI9E/hP7p8I+zPPPu1JclGpk+HDgM3L9sAR8DbnCU1VsLpg6QlZChIahgKkhqGgqSGoSCpYShIahgKkhr/D3pWxsWYjiCCAAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "cj1n9VpumsHz" | |
}, | |
"source": [ | |
"Putting all toghether in a function" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "M7P5I0f8mt_6" | |
}, | |
"source": [ | |
"def filterRGBcolors_pyplot(rgb_img_arr, rgb_colorCodes=[], alpha_value=255):\r\n", | |
" \r\n", | |
" \"\"\"\r\n", | |
" This function filter out the specified RGB colors, rendering them as \r\n", | |
" transparent when plotted with pyplot. If you prefer to specify\r\n", | |
" what colors keep use 'selectRGBcolors_pyplot' instead.\r\n", | |
"\r\n", | |
" Given a 3-channel RGB image array this function adds an extra channel\r\n", | |
" creating an RGBA image where the last is the alpha-channel specifying\r\n", | |
" transparency for each pixel.\r\n", | |
" By defauylt the transparency for the pixel of the specified colors is \r\n", | |
" set to 255 (maximum tranparency) but it's possible to tweak this value \r\n", | |
" specifying the desired transparency using the 'alpha_value'.\r\n", | |
"\r\n", | |
"\r\n", | |
" rgb_img_arr: the input image array\r\n", | |
" rgb_colorCodes: a list of the RGB color codes to render as transparent\r\n", | |
" alpha_value: transparency value\r\n", | |
"\r\n", | |
" Return: the rgb_img_arr in RGBA format where the last channel specify\r\n", | |
" transparency\r\n", | |
"\r\n", | |
"\r\n", | |
"\r\n", | |
" Example:\r\n", | |
"\r\n", | |
" # the following made the green color transparent\r\n", | |
" > filterRGBcolors_pyplot(rgb_img_arr, rgb_colorCodes = [(0,255,0)])\r\n", | |
"\r\n", | |
" # the following made set the green color half-transparent\r\n", | |
" > filterRGBcolors_pyplot(rgb_img_arr, rgb_colorCodes = [(0,255,0)], \r\n", | |
" alpha_value = 128)\r\n", | |
"\r\n", | |
" \"\"\"\r\n", | |
"\r\n", | |
" if rgb_colorCodes:\r\n", | |
"\r\n", | |
" mask = np.zeros((rgb_img_arr.shape[0], rgb_img_arr.shape[1])).astype(bool)\r\n", | |
"\r\n", | |
" for rgb_colorCode in rgb_colorCodes:\r\n", | |
" \r\n", | |
" assert type(rgb_colorCode) == tuple\r\n", | |
" assert len(rgb_colorCode) == 3\r\n", | |
" assert all(colorValue <= 255 for colorValue in rgb_colorCode)\r\n", | |
"\r\n", | |
" mask |= ((rgb_img_arr[:,:,0] == rgb_colorCode[0]) &\r\n", | |
" (rgb_img_arr[:,:,1] == rgb_colorCode[1]) &\r\n", | |
" (rgb_img_arr[:,:,2] == rgb_colorCode[2]))\r\n", | |
" \r\n", | |
" return np.dstack([rgb_img_arr, (~mask).astype(np.uint8)*alpha_value])\r\n", | |
"\r\n", | |
" else:\r\n", | |
" print(\"Please specify the 'rgb_colorCodes' to mask.\")\r\n", | |
" \r\n", | |
" return rgb_img_arr" | |
], | |
"execution_count": 6, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "hvUx1bOjm_HX" | |
}, | |
"source": [ | |
"with the above funcition it's possible to filter out multiple colors through the `rgb_colorCodes` parameters. \r\n", | |
"\r\n", | |
"Instead of using the function above where it's necessary to specify the color to filter out, it's possible to use the below function `selectRGBcolors_pyplot` in which it's possible to specify what colors keep.\r\n", | |
"\r\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "k422yfgnnnuA" | |
}, | |
"source": [ | |
"def selectRGBcolors_pyplot(rgb_img_arr, rgb_colorCodes=[], alpha_value=255):\r\n", | |
" \r\n", | |
" \"\"\"\r\n", | |
" This function select the specified RGB colors, rendering the others as \r\n", | |
" transparent when plotted with pyplot. If you prefer to specify\r\n", | |
" what colors exclude use 'filterRGBcolors_pyplot' instead.\r\n", | |
"\r\n", | |
" Given a 3-channel RGB image array this function adds an extra channel\r\n", | |
" creating an RGBA image where the last is the alpha-channel specifying\r\n", | |
" transparency for each pixel.\r\n", | |
" By defauylt the transparency for the pixel of the colors excluded is \r\n", | |
" set to 255 (maximum tranparency) but it's possible to tweak this value \r\n", | |
" specifying the desired transparency using the 'alpha_value'.\r\n", | |
"\r\n", | |
"\r\n", | |
" rgb_img_arr: the input image array\r\n", | |
" rgb_colorCodes: a list of the RGB color codes to keep\r\n", | |
" alpha_value: transparency value\r\n", | |
"\r\n", | |
" Return: the rgb_img_arr in RGBA format where the last channel specify\r\n", | |
" transparency\r\n", | |
"\r\n", | |
"\r\n", | |
"\r\n", | |
" Example:\r\n", | |
"\r\n", | |
" # the following select only the green color\r\n", | |
" > selectRGBcolors_pyplot(rgb_img_arr, rgb_colorCodes = [(0,255,0)])\r\n", | |
"\r\n", | |
" # the following select only the green color, making the others half-transparent\r\n", | |
" > filterRGBcolors_pyplot(rgb_img_arr, rgb_colorCodes = [(0,255,0)], \r\n", | |
" alpha_value = 128)\r\n", | |
"\r\n", | |
" \"\"\"\r\n", | |
"\r\n", | |
" if rgb_colorCodes:\r\n", | |
"\r\n", | |
" mask = np.zeros((rgb_img_arr.shape[0], rgb_img_arr.shape[1])).astype(bool)\r\n", | |
"\r\n", | |
" for rgb_colorCode in rgb_colorCodes:\r\n", | |
" \r\n", | |
" assert type(rgb_colorCode) == tuple\r\n", | |
" assert len(rgb_colorCode) == 3\r\n", | |
" assert all(colorValue <= 255 for colorValue in rgb_colorCode)\r\n", | |
"\r\n", | |
" mask |= ((rgb_img_arr[:,:,0] == rgb_colorCode[0]) &\r\n", | |
" (rgb_img_arr[:,:,1] == rgb_colorCode[1]) &\r\n", | |
" (rgb_img_arr[:,:,2] == rgb_colorCode[2]))\r\n", | |
" \r\n", | |
" return np.dstack([rgb_img_arr, (mask).astype(np.uint8)*alpha_value])\r\n", | |
"\r\n", | |
" else:\r\n", | |
" print(\"Please specify the 'rgb_colorCodes' to keep.\")\r\n", | |
" \r\n", | |
" return rgb_img_arr" | |
], | |
"execution_count": 7, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "mkP2jNNAnwem" | |
}, | |
"source": [ | |
"## Examples" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 284 | |
}, | |
"id": "H65nZB9VnwMz", | |
"outputId": "acd6f3a5-0a40-4da7-93e6-ea2f23921f04" | |
}, | |
"source": [ | |
"#using filter specify black RGB colorcode\r\n", | |
"plt.imshow(filterRGBcolors_pyplot(img, rgb_colorCodes=[(0,0,0)]))" | |
], | |
"execution_count": 8, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"<matplotlib.image.AxesImage at 0x7f7fd7a86f60>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 8 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 284 | |
}, | |
"id": "Tx9PCL51oJeI", | |
"outputId": "c571e4f4-7343-4ff4-8225-10404617a47b" | |
}, | |
"source": [ | |
"#using select specify blue RGB color code\r\n", | |
"plt.imshow(selectRGBcolors_pyplot(img, rgb_colorCodes=[(0,0,255)]))" | |
], | |
"execution_count": 9, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"<matplotlib.image.AxesImage at 0x7f7fd7a720b8>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 9 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [], | |
"needs_background": "light" | |
} | |
} | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment