{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "GWEKvPCCxJke" }, "source": [ "##### Copyright 2020 The TensorFlow Authors." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "cellView": "form", "execution": { "iopub.execute_input": "2022-06-16T06:56:06.834586Z", "iopub.status.busy": "2022-06-16T06:56:06.834111Z", "iopub.status.idle": "2022-06-16T06:56:06.837885Z", "shell.execute_reply": "2022-06-16T06:56:06.837273Z" }, "id": "l-m8KQ-nxK5l" }, "outputs": [], "source": [ "#@title Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# https://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "O8FuVCLYxi_l" }, "source": [ "# TensorFlow Addons Image: Operations\n", "\n", "\n", " \n", " \n", " \n", " \n", "
\n", " View on TensorFlow.org\n", " \n", " Run in Google Colab\n", " \n", " View source on GitHub\n", " \n", " Download notebook\n", "
" ] }, { "cell_type": "markdown", "metadata": { "id": "2a5ksOt-xsOl" }, "source": [ "## Overview\n", "This notebook will demonstrate how to use the some image operations in TensorFlow Addons.\n", "\n", "Here is the list of image operations you'll be covering in this example:\n", "\n", "- `tfa.image.mean_filter2d`\n", "\n", "- `tfa.image.rotate`\n", "\n", "- `tfa.image.transform`\n", "\n", "- `tfa.image.random_hsv_in_yiq`\n", "\n", "- `tfa.image.adjust_hsv_in_yiq`\n", "\n", "- `tfa.image.dense_image_warp`\n", "\n", "- `tfa.image.euclidean_dist_transform`" ] }, { "cell_type": "markdown", "metadata": { "id": "DMbjxr4PyMPF" }, "source": [ "# Setup" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2022-06-16T06:56:06.841341Z", "iopub.status.busy": "2022-06-16T06:56:06.840846Z", "iopub.status.idle": "2022-06-16T06:56:08.539691Z", "shell.execute_reply": "2022-06-16T06:56:08.538864Z" }, "id": "o_QTX_vHGbj7" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting tensorflow-addons\r\n", " Using cached tensorflow_addons-0.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB)\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: packaging in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tensorflow-addons) (21.3)\r\n", "Collecting typeguard>=2.7\r\n", " Using cached typeguard-2.13.3-py3-none-any.whl (17 kB)\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from packaging->tensorflow-addons) (3.0.9)\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Installing collected packages: typeguard, tensorflow-addons\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Successfully installed tensorflow-addons-0.17.1 typeguard-2.13.3\r\n" ] } ], "source": [ "!pip install -U tensorflow-addons" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2022-06-16T06:56:08.543952Z", "iopub.status.busy": "2022-06-16T06:56:08.543671Z", "iopub.status.idle": "2022-06-16T06:56:10.839949Z", "shell.execute_reply": "2022-06-16T06:56:10.839302Z" }, "id": "5hVIKCrhWh4a" }, "outputs": [], "source": [ "import tensorflow as tf\n", "import numpy as np\n", "import tensorflow_addons as tfa\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": { "id": "Q6Z2rsP8yp2v" }, "source": [ "# Prepare and Inspect Images" ] }, { "cell_type": "markdown", "metadata": { "id": "9gbgJP10z9WO" }, "source": [ "## Download the images" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2022-06-16T06:56:10.844151Z", "iopub.status.busy": "2022-06-16T06:56:10.843741Z", "iopub.status.idle": "2022-06-16T06:56:10.954607Z", "shell.execute_reply": "2022-06-16T06:56:10.953950Z" }, "id": "IgUsVhBQ6dSg" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading data from https://tensorflow.org/images/tf_logo.png\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r", " 8192/39781 [=====>........................] - ETA: 0s" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r", "39781/39781 [==============================] - 0s 0us/step\n" ] } ], "source": [ "img_path = tf.keras.utils.get_file('tensorflow.png','https://tensorflow.org/images/tf_logo.png')" ] }, { "cell_type": "markdown", "metadata": { "id": "uheQOL-y0Fj3" }, "source": [ "## Inspect the images" ] }, { "cell_type": "markdown", "metadata": { "id": "MFGirRRZ0Y9k" }, "source": [ "### TensorFlow Icon" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2022-06-16T06:56:10.958047Z", "iopub.status.busy": "2022-06-16T06:56:10.957483Z", "iopub.status.idle": "2022-06-16T06:56:14.140122Z", "shell.execute_reply": "2022-06-16T06:56:14.139339Z" }, "id": "NRlvNQdm1YI8" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "img_raw = tf.io.read_file(img_path)\n", "img = tf.io.decode_image(img_raw)\n", "img = tf.image.convert_image_dtype(img, tf.float32)\n", "img = tf.image.resize(img, [500,500])\n", "\n", "plt.title(\"TensorFlow Logo with shape {}\".format(img.shape))\n", "_ = plt.imshow(img)" ] }, { "cell_type": "markdown", "metadata": { "id": "clXQrFVa2nN7" }, "source": [ "### Make a black and white version" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2022-06-16T06:56:14.143887Z", "iopub.status.busy": "2022-06-16T06:56:14.143349Z", "iopub.status.idle": "2022-06-16T06:56:14.514957Z", "shell.execute_reply": "2022-06-16T06:56:14.514053Z" }, "id": "tbaIkUCS2eNv" }, "outputs": [ { "data": { "image/png": "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9jcee+wx3nvvvWrzVWBmRk5ODg8++CCvvvoqffr0oUWLFmRkZHg4lKMSA8HM3gSKO2DrWMTyBgwoY12ukD179vDBBx/w6KOPMmPGjGo7Cr9r1y4WLlzIsmXL6NSpEz179uSYY47xMYVy4t+HkKLS0tLir1dbvXo1w4cPZ9y4caxfvz7JlaWG7du3M3XqVN566y26d+/OZZddRnZ2drLLqvI8EFLY1q1bmThxIkOHDuWzzz7zrnEhZkZubi7Dhw/n9ddfj78SLSsrK9mlVVkeCClGEjt27GDevHk88sgjvPPOO9VmnOBA5efns3LlSv7whz8wc+ZMevXqRfPmzeOfwHOl5/dYCjEzli5dypAhQ5g+fbr/qMh+ysvL4+2332bZsmWcf/759OzZkyZNmpS8oot5IFSg0gx0FXzH4tdff83QoUMZM2aMjxOUgZmxZcsWpk6dyptvvsmVV15Jt27dOOyww5JdWpXggVBBateuXaou68aNG5kyZQpDhgwhJyenEiqrPr799luGDRvG7Nmzufrqq/nFL35BZmZmsstKaR4IFaTgp9mKk5eXx5w5c3j44Yd555132LVrVyVVVr2YGStWrOChhx6iVatWXHvttTRr1qzE/0915YFQicyM/Px8li9fzsMPP8y0adOq7fkExUlLS+OKK67gyy+/ZMmSJeU2oLpr1y4WLFjAsmXLuOiii7jyyitp1Cj6zJ2fw/ADD4RKYmasXr2aYcOGMWrUKHJzc0teqRqSRPPmzeMPak2YMIHPP/+cPXv2lMv2t23bxtSpU/nHP/7B5ZdfTufOnX/0+QhJ1for1DwQKsHmzZuZPHkyQ4YMYcWKFf57jqVw6KGHcumll3LOOecwbdo0nnvuOdatW1cu2zYzvvnmG5566inmzJnD1VdfTZs2beLxhep8OFF9b3klyMvLY9asWVxyySUMGDCAjz/+2MNgPx1xxBFcf/31jBgxgksuuYRatWqV27b37NnDihUrePDBB/n973/Phx9+WO3/P95DqCDr16+nf//+zJo1iy1btiS7nCqt4DcY7733Xrp27cq4ceN49913y20gNi8vj3/84x8sW7aMs846q1qP63ggVJBVq1axatWqZJdxUElLS6N169Y0a9aM+fPnM27cOD799NNye1XfsmULs2fPLpdtVVV+yOCqDElIolatWlx00UU88cQT3HTT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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "bw_img = 1.0 - tf.image.rgb_to_grayscale(img)\n", "\n", "plt.title(\"Mask image with shape {}\".format(bw_img.shape))\n", "_ = plt.imshow(bw_img[...,0], cmap='gray')" ] }, { "cell_type": "markdown", "metadata": { "id": "UwqfpOm--vV2" }, "source": [ "# Play with tfa.image" ] }, { "cell_type": "markdown", "metadata": { "id": "jIa5HnomPds3" }, "source": [ "## Mean filtering\n", "Mean filtering is a filtering technique, which is often used to remove noise from an image or signal. The idea is to run through the image pixel by pixel and replacing it with the average values of neighboring pixels." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2022-06-16T06:56:14.518260Z", "iopub.status.busy": "2022-06-16T06:56:14.518033Z", "iopub.status.idle": "2022-06-16T06:56:15.081213Z", "shell.execute_reply": "2022-06-16T06:56:15.080411Z" }, "id": "SutWnbRoHl6i" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "mean = tfa.image.mean_filter2d(img, filter_shape=11)\n", "_ = plt.imshow(mean)" ] }, { "cell_type": "markdown", "metadata": { "id": "Mp6cU7I0-r2h" }, "source": [ "## Rotate\n", "This operation rotates the given image by the angle (in radians) input by the user. " ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2022-06-16T06:56:15.084910Z", "iopub.status.busy": "2022-06-16T06:56:15.084223Z", "iopub.status.idle": "2022-06-16T06:56:15.207167Z", "shell.execute_reply": "2022-06-16T06:56:15.206323Z" }, "id": "9kxUES9sM8Jl" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "rotate = tfa.image.rotate(img, tf.constant(np.pi/8))\n", "_ = plt.imshow(rotate)" ] }, { "cell_type": "markdown", "metadata": { "id": "WjMdSDKlBcPh" }, "source": [ "## Transform\n", "This operation transforms the given image on the basis of the transform vector given by the user. " ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2022-06-16T06:56:15.210742Z", "iopub.status.busy": "2022-06-16T06:56:15.210118Z", "iopub.status.idle": "2022-06-16T06:56:15.325957Z", "shell.execute_reply": "2022-06-16T06:56:15.325208Z" }, "id": "HTh1Qpps8Rg5" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "transform = tfa.image.transform(img, [1.0, 1.0, -250, 0.0, 1.0, 0.0, 0.0, 0.0])\n", "_ = plt.imshow(transform)" ] }, { "cell_type": "markdown", "metadata": { "id": "O79BrK-bC8oh" }, "source": [ "## Random HSV in YIQ\n", "This operation changes color scale of a given RGB image to YIQ but here delta hue and saturation values are picked randomly from the given range." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2022-06-16T06:56:15.329187Z", "iopub.status.busy": "2022-06-16T06:56:15.328867Z", "iopub.status.idle": "2022-06-16T06:56:15.552116Z", "shell.execute_reply": "2022-06-16T06:56:15.551344Z" }, "id": "zZBI-9XvBSuh" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "delta = 0.5\n", "lower_saturation = 0.1\n", "upper_saturation = 0.9\n", "lower_value = 0.2\n", "upper_value = 0.8\n", "rand_hsvinyiq = tfa.image.random_hsv_in_yiq(img, delta, lower_saturation, upper_saturation, lower_value, upper_value)\n", "_ = plt.imshow(rand_hsvinyiq)" ] }, { "cell_type": "markdown", "metadata": { "id": "ruyvVnmCDBgj" }, "source": [ "## Adjust HSV in YIQ\n", "This operation changes color scale of a given RGB image to YIQ but here instead of choosing randomly, delta hue and saturation values are inputs form the user." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2022-06-16T06:56:15.555543Z", "iopub.status.busy": "2022-06-16T06:56:15.555093Z", "iopub.status.idle": "2022-06-16T06:56:15.669246Z", "shell.execute_reply": "2022-06-16T06:56:15.668473Z" }, "id": "vbCdwGtYChnQ" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "delta = 0.5\n", "saturation = 0.3\n", "value = 0.6\n", "adj_hsvinyiq = tfa.image.adjust_hsv_in_yiq(img, delta, saturation, value)\n", "_ = plt.imshow(adj_hsvinyiq)" ] }, { "cell_type": "markdown", "metadata": { "id": "fdbCDYJkG8Gv" }, "source": [ "## Dense Image Warp\n", "This operation is for non-linear warp of any image specified by the flow field of the offset vector (here used random values for example). " ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2022-06-16T06:56:15.672616Z", "iopub.status.busy": "2022-06-16T06:56:15.672127Z", "iopub.status.idle": "2022-06-16T06:56:16.588009Z", "shell.execute_reply": "2022-06-16T06:56:16.587207Z" }, "id": "dG557eQDDtSK" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "input_img = tf.image.convert_image_dtype(tf.expand_dims(img, 0), tf.dtypes.float32)\n", "\n", "flow_shape = [1, input_img.shape[1], input_img.shape[2], 2]\n", "init_flows = np.float32(np.random.normal(size=flow_shape) * 2.0)\n", "dense_img_warp = tfa.image.dense_image_warp(input_img, init_flows)\n", "dense_img_warp = tf.squeeze(dense_img_warp, 0)\n", "_ = plt.imshow(dense_img_warp)" ] }, { "cell_type": "markdown", "metadata": { "id": "FcLMnSKYPcjA" }, "source": [ "## Euclidian Distance Transform\n", "This operation updates the pixel value with the euclidian distance from the foreground pixel to the background one.\n", "* Note : It takes only binary image and results in transformed image. If a different image is given it results in a image with single value" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2022-06-16T06:56:16.591596Z", "iopub.status.busy": "2022-06-16T06:56:16.591093Z", "iopub.status.idle": "2022-06-16T06:56:17.791280Z", "shell.execute_reply": "2022-06-16T06:56:17.790438Z" }, "id": "-OMh6oeRQaYQ" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "gray = tf.image.convert_image_dtype(bw_img,tf.uint8)\n", "# The op expects a batch of images, so add a batch dimension\n", "gray = tf.expand_dims(gray, 0)\n", "eucid = tfa.image.euclidean_dist_transform(gray)\n", "eucid = tf.squeeze(eucid, (0, -1))\n", "_ = plt.imshow(eucid, cmap='gray')" ] } ], "metadata": { "accelerator": "GPU", "colab": { "collapsed_sections": [], "name": "image_ops.ipynb", "toc_visible": true }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.13" } }, "nbformat": 4, "nbformat_minor": 0 }