diff --git a/src/colour_lut.ipynb b/src/colour_lut.ipynb deleted file mode 100644 index 55ae07e..0000000 --- a/src/colour_lut.ipynb +++ /dev/null @@ -1,91 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "\n", - "from editor.utils import get_random_saturation_per_hue_lut\n", - "\n", - "\n", - "plt.figure(figsize=(5, 3))\n", - "plt.plot(\n", - " np.linspace(0, 256, 256),\n", - " get_random_saturation_per_hue_lut(),\n", - ")\n", - "plt.xlabel(\"Hue\")\n", - "plt.ylabel(\"Saturation coefficient\")\n", - "plt.grid(True)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "metadata": {} - }, - "outputs": [ - { - "data": { - "image/png": "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kvD222+jRYsWmD9/vqT1TZw4EYsXL8Y777yD8ePH48yZM1izZg0A/SO86nJycoKLiwu+/vprqFQqXL9+He+++26N1nXkyBHExMQgIiICcXFx+OGHH7Bz505J65g6dSr69OmDxYsXY/DgwThw4AB2794teftatWqFEydOID09Hc2aNYOzs3O1XvfBBx9g0KBB8PT0xAsvvAAzMzOcPXsW586dw7x587BmzRpUVFSge/fusLGxwbp162BtbQ1vb2/8/PPPuHr1Kvr06QMnJyfs2rULGo0G7du3l1Q7NU088iT6L19fX/z2229o06YNIiMj0aZNG7z22mvo168fjh07Vu1/0B/w8fHBjz/+iC1btiAgIAArVqzQft1FoVDUqEYzMzNs3LgRiYmJ8PPzw1tvvYVFixbVaF0zZsxAYmIinnjiCXz88cf49NNPMWDAAEnr6NWrF1auXInFixcjMDAQe/bswVtvvQUrKytJ65k5cybMzc3RqVMnNG/evNqf3w4YMAA///wz4uLi0K1bN/To0QOLFy+Gt7c3AMDR0RHffPMNevXqhYCAAOzfvx87duyAi4sLHB0dsWXLFjz99NPo2LEjVq5cie+//x6dO3eWVDs1TTJRnQ9hiMgg5s+fj5UrVyIjI8PYpdSZCRMm4OLFi/jll1+MXQpRneFpW6I6tHz5cnTr1g0uLi44cuQIFi1ahClTphi7LIP617/+hbCwMNja2mL37t1Yu3Ytli9fbuyyiOoUw5OoDqWmpmLevHm4e/cuvLy8MGPGDMyePdvYZRnUr7/+ipiYGBQUFKB169b48ssv8eqrrxq7LKI6xdO2REREEvGCISIiIokYnkRERBIxPImIiCRieBIREUnE8CQiIpKI4UlERCQRw5OIiEgihicREZFEDE8iIiKJ/j+g9LQchnyA1QAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from editor.utils import get_random_brightness_lut\n", - "\n", - "\n", - "plt.figure(figsize=(5, 3))\n", - "plt.plot(\n", - " np.linspace(0, 256, 256),\n", - " get_random_brightness_lut(),\n", - ")\n", - "plt.ylim(0, 255)\n", - "plt.xlabel(\"Original brightness\")\n", - "plt.ylabel(\"New brightness\")\n", - "plt.grid(True)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "bipolaroid", - "language": "python", - "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.12.2" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/src/editor/operations/__init__.py b/src/editor/operations/__init__.py index 91a787b..9c7da16 100644 --- a/src/editor/operations/__init__.py +++ b/src/editor/operations/__init__.py @@ -1,3 +1,6 @@ from .add_noise import add_noise from .change_temperature import change_temperature from .add_random_colour_spill import add_random_colour_spill +from .gamma import adjust_gamma, get_random_gamma +from .get_colour_lut import get_random_saturation_per_hue_lut, get_random_brightness_lut +from .apply_pixel_shader import apply_pixel_shader diff --git a/src/editor/utils/apply_pixel_shader.py b/src/editor/operations/apply_pixel_shader.py similarity index 100% rename from src/editor/utils/apply_pixel_shader.py rename to src/editor/operations/apply_pixel_shader.py diff --git a/src/editor/operations/get_colour_lut.ipynb b/src/editor/operations/get_colour_lut.ipynb new file mode 100644 index 0000000..83a8ce3 --- /dev/null +++ b/src/editor/operations/get_colour_lut.ipynb @@ -0,0 +1,93 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import sys\n", + "\n", + "sys.path.insert(0, \"../../\")\n", + "from editor.operations import get_random_saturation_per_hue_lut\n", + "\n", + "\n", + "plt.figure(figsize=(5, 3))\n", + "plt.plot(\n", + " np.linspace(0, 256, 256),\n", + " get_random_saturation_per_hue_lut(),\n", + ")\n", + "plt.xlabel(\"Hue\")\n", + "plt.ylabel(\"Saturation coefficient\")\n", + "plt.grid(True)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "metadata": {} + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from editor.utils import get_random_brightness_lut\n", + "\n", + "\n", + "plt.figure(figsize=(5, 3))\n", + "plt.plot(\n", + " np.linspace(0, 256, 256),\n", + " get_random_brightness_lut(),\n", + ")\n", + "plt.ylim(0, 255)\n", + "plt.xlabel(\"Original brightness\")\n", + "plt.ylabel(\"New brightness\")\n", + "plt.grid(True)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "bipolaroid", + "language": "python", + "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.12.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/src/editor/utils/get_colour_lut.py b/src/editor/operations/get_colour_lut.py similarity index 97% rename from src/editor/utils/get_colour_lut.py rename to src/editor/operations/get_colour_lut.py index 7dfcd8f..a65b30c 100644 --- a/src/editor/utils/get_colour_lut.py +++ b/src/editor/operations/get_colour_lut.py @@ -1,6 +1,6 @@ import numpy as np from typing import List -from .random import random +from ..utils.random import random from .interpolate import interpolate, INTERPOLATION_TYPE diff --git a/src/editor/utils/interpolate.py b/src/editor/operations/interpolate.py similarity index 100% rename from src/editor/utils/interpolate.py rename to src/editor/operations/interpolate.py diff --git a/src/editor/utils/__init__.py b/src/editor/utils/__init__.py index 5f8fc9a..630e863 100644 --- a/src/editor/utils/__init__.py +++ b/src/editor/utils/__init__.py @@ -1,10 +1,4 @@ -from .interpolate import interpolate from .random import random -from .apply_pixel_shader import apply_pixel_shader -from .get_colour_lut import ( - get_random_brightness_lut, - get_random_saturation_per_hue_lut, -) from .compute_histogram import compute_histogram from .generate_rotation_matrices import generate_rotation_matrices from .get_next_run_name import get_next_run_name