{
 "cells": [
  {
   "cell_type": "markdown",
   "source": [
    "Aside from \"true\" operations that specify some kind of transformation, there are also a couple of\n",
    "special utility operations used for functionality such as stochastic branching."
   ],
   "metadata": {}
  },
  {
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": "150×200 Array{RGB{N0f8},2} with eltype RGB{FixedPointNumbers.N0f8}:\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)  …  RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)     RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)     RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)     RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)     RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)  …  RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)     RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)     RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)     RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)     RGB{N0f8}(1.0,1.0,1.0)\n ⋮                                               ⋱  \n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)     RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)     RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)     RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)     RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)  …  RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)     RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)     RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)     RGB{N0f8}(1.0,1.0,1.0)\n RGB{N0f8}(1.0,1.0,1.0)  RGB{N0f8}(1.0,1.0,1.0)     RGB{N0f8}(1.0,1.0,1.0)",
      "image/png": "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"
     },
     "metadata": {},
     "execution_count": 1
    }
   ],
   "cell_type": "code",
   "source": [
    "using Augmentor\n",
    "using Random\n",
    "Random.seed!(1337)\n",
    "\n",
    "img_in = testpattern(RGB, ratio=0.5)\n",
    "img_out = augment(img_in, Either(0.5=>NoOp(), 0.25=>FlipX(), 0.25=>FlipY()))"
   ],
   "metadata": {},
   "execution_count": 1
  },
  {
   "cell_type": "markdown",
   "source": [
    "![](utilities.gif)"
   ],
   "metadata": {}
  },
  {
   "cell_type": "markdown",
   "source": [
    "## References"
   ],
   "metadata": {}
  },
  {
   "cell_type": "markdown",
   "source": [
    "---\n",
    "\n",
    "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*"
   ],
   "metadata": {}
  }
 ],
 "nbformat_minor": 3,
 "metadata": {
  "language_info": {
   "file_extension": ".jl",
   "mimetype": "application/julia",
   "name": "julia",
   "version": "1.7.3"
  },
  "kernelspec": {
   "name": "julia-1.7",
   "display_name": "Julia 1.7.3",
   "language": "julia"
  }
 },
 "nbformat": 4
}