From 8bc329293bdc932becb8f4f798d8e1e594b447ae Mon Sep 17 00:00:00 2001 From: Andras Schmelczer Date: Sun, 16 Jun 2024 20:50:15 +0100 Subject: [PATCH] Make LUTs more realistic --- src/colour_lut.ipynb | 59 ++++++++++++++++++++++-------- src/editor/utils/get_colour_lut.py | 34 ++++++++++++++--- 2 files changed, 71 insertions(+), 22 deletions(-) diff --git a/src/colour_lut.ipynb b/src/colour_lut.ipynb index 5a78342..63222da 100644 --- a/src/colour_lut.ipynb +++ b/src/colour_lut.ipynb @@ -3,15 +3,13 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "metadata": {} - }, + "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAINCAYAAAA0iU6RAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABf3klEQVR4nO3de1yUZf7/8fcNAgoqoqhAIlBplqJL6DcPux629ZSWZr+ydXfTTt9as9YtM6wsLVNzV7N0O+zWaieT9qt2TqVMi8wWSRMzXbdQ1MZM00FlBIT794cxgQzMDM6Z1/PxsIdz3/fMXAPXsry9PvfnMkzTNAUAAAAAcFmYvwcAAAAAAMGGIAUAAAAAbiJIAQAAAICbCFIAAAAA4CaCFAAAAAC4iSAFAAAAAG4iSAEAAACAmwhSAAAAAOCmJv4eQCCorKzUd999pxYtWsgwDH8PBwAAAICfmKap48ePKykpSWFhda87EaQkfffdd0pOTvb3MAAAAAAEiH379qlDhw51nidISWrRooWkM1+sli1b+nUs5eXlWrt2rYYMGaKIiAi/jgWBi3kCZ5gjcAXzBK5gnsCZUJsjxcXFSk5OtmeEuhCkJHs5X8uWLQMiSEVHR6tly5YhMRHhHcwTOMMcgSuYJ3AF8wTOhOoccXbLD80mAAAAAMBNBCkAAAAAcBNBCgAAAADcxD1SLjJNU6dPn1ZFRYVX36e8vFxNmjTRqVOnvP5eCF7+nicREREKDw/3+fsCAAAECoKUC8rKymSxWFRSUuL19zJNUwkJCdq3bx97WqFO/p4nhmGoQ4cOat68uc/fGwAAIBAQpJyorKxUYWGhwsPDlZSUpMjISK/+4lpZWakTJ06oefPm9W4AhsbNn/PENE398MMP2r9/vzp16sTKFAAAaJQIUk6UlZWpsrJSycnJio6O9vr7VVZWqqysTE2bNiVIoU7+nidt27bVnj17VF5eTpACAACNEr+pu4hQA/yMslMAANDYkQ4AAAAAwE0EKQS01NRULVy40C/vvXTpUrVq1cov730u1q9fL8MwdOzYMX8PBQAAIGQRpELUhAkTNHr0aLeeYxiG3njjDa+Mx1d8HX4Mw6j155e//KXP3v/Xv/61Jk+eXONY3759ZbFYFBsb67NxAAAANDY0m4DHlZeXKyIiwt/D8JklS5Zo2LBh9seRkZF+HM2Z909ISPDrGAAAAEIdK1I+ZLHatPGbw7JYbT5/74EDB+quu+7S1KlT1bp1ayUkJGjGjBn286mpqZKkq6++WoZh2B9L0ttvv63MzEw1bdpU559/vmbOnKnTp0/bzxuGoWeffVajRo1STEyMZs2aZS8ve/fdd9WjRw81bdpUl112mQoKCmqMa8WKFeratauioqKUmpqq+fPn1/s5FixYoPT0dMXExCg5OVkTJ07UiRMnJJ0pabvxxhtltVrtq0NVn7GsrExTp07Veeedp5iYGF122WVav359jddeunSpOnbsqOjoaF199dU6cuSIS1/bVq1aKSEhwf6ndevW9q/L2St8rVq10tKlSyVJe/bskWEYWrlypQYNGqTo6Gj16NFDn332WY3nfPrppxowYICio6MVFxenoUOH6ujRo5o4caI2bNigJ5980v559+zZ47C0z9nXOTU1VbNnz9ZNN92kFi1aqGPHjvr73//u0ucHAABojAhSbjJNUyVlp93+8/Jne9Rv7jqN+8fn6jd3nV7+bE+d19rKKhweN03znMb+4osvKiYmRp9//rnmzZunRx55RDk5OZKkvLw8SWdWVywWi/3xmjVr9Pvf/1533XWXduzYoeeee05Lly7VY489VuO1H374YY0aNUoFBQW66aab7Mfvvfde/fWvf1VeXp7atWunq666SuXl5ZKk/Px8XXfddbr++utVUFCgGTNmaPr06fag4UhYWJieeuopbd++XS+++KLWrVunqVOnSjpT0rZw4UK1bNlSFotFFotFU6ZMkSTdeOON+vTTT7V8+XJt27ZN1157rYYNG6bdu3dLkj7//HPddNNNmjhxorZu3apBgwZp1qxZ5/T1dtUDDzygKVOmaOvWrercubN++9vf2oPq1q1bdfnll6tr16767LPPlJubqyuvvFIVFRWaM2eO+vTpo1tvvdX+eZOTk2u9vqtf5/nz56tnz57asmWLJk6cqD/+8Y/auXOnL74EAAAAQYfSPjfZyit0yUNrzuk1Kk1p+ptfafqbX7n1vB2PDFV0ZMO/Zd27d9fDDz8sSerUqZMWL16sDz/8UIMHD1bbtm0l/by6UuWxxx5TVlaWxo8fL0k6//zz9eijj2rq1Kn215KkcePG1QhQhYWFks4ErMGDB0s6E+Q6dOigVatW6brrrtOCBQt0+eWXa/r06ZKkzp07a8eOHfrLX/6iCRMmOPwM1e8HSktL06OPPqo//vGPevrppxUZGanY2FgZhlHjM3zzzTd67bXXtH//fiUlJUmSpkyZotWrV2vJkiWaPXu2nnzySQ0dOlRZWVn2sWzcuFGrV692+nX97W9/W2MvpVdeecWt+9OmTJmiESNGSJJmzpyprl276r///a+6dOmiefPmqWfPnnr66aft13ft2lWVlZUqLi5WZGSkoqOj6y3lc/XrfMUVV2jixImSpPvuu09PPPGE1q9fry5durj8WQAAABoLVqQake7du9d4nJiYqEOHDtX7nPz8fD3yyCNq3ry5/U/VCkhJSYn9up49ezp8fp8+fex/b926tS666CJ9/fXXkqSvv/5a/fr1q3F9v379tHv3blVUVDh8vY8++kiDBw/WeeedpxYtWuiGG27QkSNHdPLkyTo/wxdffCHTNNW5c+can2PDhg365ptv7GOpPtazx16fJ554Qlu3brX/qQqOrqr+fUlMTJQk+/elakXqXLj6da4+jqow6mx+AAAAeII/b4FpKFak3NQsIlw7Hhnq1nMOWk/pNws2qLJaZV6YIX1w9wAlxDatcW1lZaWOFx9Xi5Ytam0C3CwiXOfi7AYQhmGosrKy3udUVlZq5syZGjNmTK1zTZv+PPaYmBiXx1G1matpmrU2dq2vfHHv3r264oordPvtt+vRRx9V69atlZubq5tvvtleLljXZwgPD1d+fn6NlSNJat68udP3dSYhIUEXXnhhreOGYdR6XUfjrP59qfp6VH1fmjVr1uBxVXH169yQ+QEAANBQFqtNhYdPatu+Y3p89S6ZOvM78pwx6Rrbq6O/h+cUQcpNhmG4XV53ftvmmjMmXfev3K4K01S4YWj2mG46v23zWtdWVlbqdGS4oiOb1ApS3hYREVFrJejSSy/Vrl27HAYFV2zatEkdO575H8LRo0f1n//8x14qdskllyg3N7fG9Rs3blTnzp1rBR5J2rx5s06fPq358+fbvzavv/56jWsiIyNrfYaMjAxVVFTo0KFD+tWvfuVwnJdccok2bdpUa+znom3btrJYLPbHu3fvrrGK54ru3bvrww8/1MyZMx2ed/Q9O5u7X2cAAABvy84r0rSVBTUWGqQzt8Dcv3K7+nduq8TYc/8HZW8iSPnI2F4d1b9zW+05XKLU+OiAnBipqan68MMP1a9fP0VFRSkuLk4PPfSQRo4c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6aef6tVXX9X//d//6dSpU7rqqqs0e/bshr6cSxITE5WSkqLdu3dLkhISElRWVqajR48qLu7n1rGHDh1S375963ydqKgoRUXV/qfBiIiIgPnmB9JYELiYJ3CGOeIdFqtND9YToiTpqeszNLJHku8GdQ6YJ3AF8wTOhMoccfUzuN217/7771daWpp+/etfa+/evVq4cKEOHjyoV155xWnjiHN15MgR7du3z77xb2ZmpiIiIpSTk2O/xmKxaPv27fUGKQAAGspitemtrd857cqXmcreUAAQytxekVq/fr2mTJmisWPHNqjleXUnTpzQf//7X/vjwsJCbd26Va1bt1br1q01Y8YMXXPNNUpMTNSePXt0//33Kz4+XldffbUkKTY2VjfffLPuuecetWnTRq1bt9aUKVOUnp5u7+IHAICnuLPJLl35ACC0uR2kNm7c6LE337x5swYNGmR/XHXf0vjx4/XMM8+ooKBAL730ko4dO6bExEQNGjRI2dnZatGihf05TzzxhJo0aaLrrrtONptNl19+uZYuXarw8HCPjRMA0LhZrDZt3vNjnSEq3DA0ddhF6t6hlVLjowlRANAInFOziXM1cOBA1dc0cM2aNU5fo2nTplq0aJEWLVrkyaEBACDJ+SrU9BEXs7kuADRCbt8jBQBAY+Fsk91wwyBEAUAjRZACAKAOeYU/1huiuBcKABovv5b2AQAQaCxWmwoPn1TB/mOa8/6uWufDJC0al6FLU+IIUQDQiBGkAAD4ibP7ocIMac6YdI3oHhz7QwEAvMelIBUXFyfDMFx6wR9//PGcBgQAgD84ux9KCq5NdgEA3uVSkFq4cKH970eOHNGsWbM0dOhQ9enTR5L02Wefac2aNZo+fbpXBgkAgDexyS4AwF0uBanx48fb/37NNdfokUce0aRJk+zH7rrrLi1evFgffPCB/vznP3t+lAAAeAmb7AIAGsLte6TWrFmjxx9/vNbxoUOHKisryyODAgDAF+or52OTXQBAfdwOUm3atNGqVat077331jj+xhtvqE2bNh4bGAAA3mSx2vTONsflfGyyCwBwxu0gNXPmTN18881av369/R6pTZs2afXq1Xr++ec9PkAAADytvnI+NtkFALjC7SA1YcIEXXzxxXrqqae0cuVKmaapSy65RJ9++qkuu+wyb4wRAACPsFht2rznx3pDFPdCAQBc0aB9pC677DK9+uqrnh4LAABe46ypBOV8AAB3hDXkSd98840efPBBjRs3TocOHZIkrV69Wl999ZVHBwcAgCc42yOKcj4AgLvcDlIbNmxQenq6Pv/8c61YsUInTpyQJG3btk0PP/ywxwcIAMC5yt97tN4QRTkfAMBdbgeprKwszZo1Szk5OYqMjLQfHzRokD777DOPDg4AgHOVnVekScu21DoeJulv4zKUmzVIY3t19P3AAABBze17pAoKCrRs2bJax9u2basjR454ZFAAAHiCxWpT1sqCWsfDDGnOmHSN6J7kh1EBAEKB2ytSrVq1ksViqXV8y5YtOu+88zwyKAAAzpXFatOz67+R6aCk76nrM1iFAgCcE7dXpMaNG6f77rtP//rXv2QYhiorK/Xpp59qypQpuuGGG7wxRgAAXGKx2lR4+KQKDlg19/2dDkNUuGEoMzXO94MDAIQUt4PUY489pgkTJui8886z7yFVUVGhcePG6cEHH/TGGAEAcMpZe3OJxhIAAM9xO0hFRETo1Vdf1aOPPqovvvhClZWVysjIUKdOnbwxPgAAnHLW3lxinygAgGe5fY/UI488opKSEp1//vn6f//v/+m6665Tp06dZLPZ9Mgjj3hjjAAA1Mlitemdbd85XYkiRAEAPMntIDVz5kz73lHVlZSUaObMmR4ZFAAArsjOK1K/uev02Ls767yGcj4AgDe4XdpnmqYMw6h1/Msvv1Tr1q09MigAAJypr5wv3DA0ddhF6t6hlVLjowlRAACPczlIxcXFyTAMGYahzp071whTFRUVOnHihG6//XavDBIAgLPl7z3qMERxLxQAwBdcDlILFy6UaZq66aabNHPmTMXGxtrPRUZGKjU1VX369PHKIAEAqC47r0hZK2pvtMu9UAAAX3E5SI0fP16SlJaWpr59+yoiIsJrgwIAoC5VJX1nL0aFGeJeKACAz7h9j9SAAQPsf7fZbCovL69xvmXLluc+KgAAHLBYbXpz6wGHJX1PXZ+hkT2SfD8oAECj5HaQKikp0dSpU/X666/ryJEjtc5XVFR4ZGAAAFRX34a74YahzNQ43w8KANBoud3+/N5779W6dev09NNPKyoqSs8//7xmzpyppKQkvfTSS94YIwCgEbNYbXr7ywP1hihK+gAAvub2itTbb7+tl156SQMHDtRNN92kX/3qV7rwwguVkpKiV199Vb/73e+8MU4AQCNU3yqURIc+AID/uL0i9eOPPyotLU3SmfuhfvzxR0nSL3/5S3388ceeHR0AoNGqb58oiQ59AAD/cjtInX/++dqzZ48k6ZJLLtHrr78u6cxKVatWrTw5NgBAI2Wx2vTW1u/qDVGU8wEA/Mnt0r4bb7xRX375pQYMGKBp06ZpxIgRWrRokU6fPq0FCxZ4Y4wAgEakvnK+MEmLxmXo0pQ4QhQAwK/cDlJ//vOf7X8fNGiQdu7cqc2bN+uCCy5Qjx49PDo4AEDjUl85X9Uq1IjutDgHAPif20HqbB07dlTHjh09MRYAQCOXv/eowxBFUwkAQKBxKUg99dRTLr/gXXfd1eDBAAAar+y8It23oqDWcZpKAAACkUtB6oknnnDpxQzDIEgBANxmsdqU5SBEhRmiqQQAICC5FKQKCwu9PQ4AQCNlsdq0eN1uOWrQ99T1GRrZg3uiAACB55zukTLNM/+3ZxiGRwYDAGhcsvOKlLWyQGYdzSUyU+N8PygAAFzg9j5SkvTSSy8pPT1dzZo1U7NmzdS9e3e9/PLLnh4bACCEVXXoqytEUdIHAAhkbq9ILViwQNOnT9ekSZPUr18/maapTz/9VLfffrsOHz5coz06AACOWKw2Lf93ER36AABBy+0gtWjRIj3zzDO64YYb7MdGjRqlrl27asaMGQQpAEC96ttwlw59AIBg4XZpn8ViUd++fWsd79u3rywWi0cGBQAITa5suEuIAgAEA7eD1IUXXqjXX3+91vHs7Gx16tTJI4MCAIQei9Wmt7Z+V2c5X27WII3txQbvAIDg4HZp38yZMzV27Fh9/PHH6tevnwzDUG5urj788EOHAQsAAMr5AAChxu0VqWuuuUaff/654uPj9cYbb2jlypWKj4/Xv//9b1199dXeGCMAIIhRzgcACEUN2kcqMzNTr7zyiqfHAgAIQfl7j9KdDwAQchoUpCoqKrRq1Sp9/fXXMgxDF198sUaNGqUmTc5pf18AQIjJzivSfSsKah2nnA8AEOzcTj7bt2/XqFGjdPDgQV100UWSpP/85z9q27at3nrrLaWnp3t8kACA4GOx2pTlIESFGaKcDwAQ9Ny+R+qWW25R165dtX//fn3xxRf64osvtG/fPnXv3l3/+7//640xAgCCjMVq06IPd8tBRZ+euj6D7nwAgKDn9orUl19+qc2bNysuLs5+LC4uTo899ph69erl0cEBAIJPdl6RslYWyKyjuURmalztEwAABBm3V6Quuugiff/997WOHzp0SBdeeKFHBgUACD4Wq01vbj2grBV1hyhK+gAAocLtFanZs2frrrvu0owZM9S7d29J0qZNm/TII4/o8ccfV3Fxsf3ali1bem6kAICAVd8qlESHPgBA6HE7SI0cOVKSdN1118kwDEmS+dP/c1555ZX2x4ZhqKKiwlPjBAAEKIvVVm+IokMfACAUuR2kPvroI2+MAwAQhCxWm57+6L/1hijK+QAAocitIHX69GmtX79eN910k5KTk701JgBAEKivnC9M0qJxGbo0JY4QBQAISW41m2jSpIn++te/UrIHAI2cxWrTtHo68825Jl0juicRogAAIcvtrn2XX3651q9f74WhAACCxbqvv1elgxA1fcTFys0axD5RAICQ5/Y9UsOHD9e0adO0fft2ZWZmKiYmpsb5q666ymODAwAEniWfFmrm2ztqHaepBACgMXE7SP3xj3+UJC1YsKDWOTr1AUBoK/zhpMMQFWaIphIAgEbF7SBVWVnpjXEAAAJc0Y8ndetLeQ7PPXV9hkb2SPLxiAAA8B+3g1R1p06dUtOmTT01FgBAgHrt30WatrLA4blww1BmapyPRwQAgH+53WyioqJCjz76qM477zw1b95c3377rSRp+vTpeuGFFzw+QACAf313rET31xOiKOkDADRGbgepxx57TEuXLtW8efMUGRlpP56enq7nn3/eo4MDAPiXxWrTA6u2y9F+u3ToAwA0Zm4HqZdeekl///vf9bvf/U7h4eH24927d9fOnTvdeq2PP/5YV155pZKSkmQYht54440a503T1IwZM5SUlKRmzZpp4MCB+uqrr2pcU1paqjvvvFPx8fGKiYnRVVddpf3797v7sQAAZ8nOK1LfOev00a4fap2jQx8AoLFzO0gdOHBAF154Ya3jlZWVKi8vd+u1Tp48qR49emjx4sUOz8+bN08LFizQ4sWLlZeXp4SEBA0ePFjHjx+3XzN58mStWrVKy5cvV25urk6cOKGRI0fSPRAAzoHFalPWigKHK1GU8wEA0IBmE127dtUnn3yilJSUGsf/9a9/KSMjw63XGj58uIYPH+7wnGmaWrhwoR544AGNGTNGkvTiiy+qffv2WrZsmW677TZZrVa98MILevnl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G4ah5557TiNHjlR0dLQuvvhiffbZZ/rvf/+rgQMHKiYmRn369NE333xT43lvv/22MjMz1bRpU51//vmaOXOmTp8+bf9MknT11VfLMAz7Y2fPqxrPs88+q1GjRikmJkazZs1y98sPAPAwghQAwCeefPJJ9enTR7feeqssFossFouSk5PrvP4vf/mLunfvri+++ELTpk3Tn//8Z+Xk5NjPh4WF6amnntL27dv14osvat26dZo6dWqN1ygpKdGcOXP0/PPP66uvvlK7du10/PhxjR8/Xp988ok2bdqkTp066YorrtDx48drPPfRRx/VDTfcoK1bt6pLly4aN26cbrvtNk2bNk2bN2+WJE2aNMl+/Zo1a/T73/9ed911l3bs2KHnnntOS5cu1WOPPSZJysvLkyQtWbJEFovF/tjZ86o8/PDDGjVqlAoKCnTTTTe5++UHAHiaCQCAjwwYMMD805/+5PS6lJQUc9iwYTWOjR071hw+fHidz3n99dfNNm3a2B8vWbLElGRu3bq13vc6ffq02aJFC/Ptt9+2H5NkPvjgg/bHn332mSnJfOGFF+zHXnvtNbNp06b2x7/61a/M2bNn13jtl19+2UxMTKzxuqtWrapxjavPmzx5cr2fAwDgW038muIAAKhDnz59aj1euHCh/fFHH32k2bNna8eOHSouLtbp06d16tQpnTx5UjExMZKkyMhIde/evcbrHDp0SA899JDWrVun77//XhUVFSopKVFRUVGN66o/r3379pKk9PT0GsdOnTql4uJitWzZUvn5+crLy6uxklRRUaFTp06ppKRE0dHRDj+nq8/r2bOn068ZAMB3CFIAgKBhGIYkae/evbriiit0++2369FHH1Xr1q2Vm5urm2++uUYjhmbNmtmfU2XChAn64YcftHDhQqWkpCgqKkp9+vRRWVlZjesiIiJqva+jY1UNLCorKzVz5kyNGTOm1ribNm1a52dy9XlV4RAAEBgIUgAAn4mMjFRFRYVL127atKnW4y5dukiSNm/erNOnT2v+/PkKCztzu+/rr7/u0ut+8sknevrpp3XFFVdIkvbt26fDhw+7+hHqdOmll2rXrl268MIL67wmIiKi1ud35XkAgMBDkAIA+Exqaqo+//xz7dmzR82bN1fr1q3tQehsn376qebNm6fRo0crJydH//rXv/Tuu+9Kki644AKdPn1aixYt0pVXXqlPP/1Uzz77rEtjuPDCC/Xyyy+rZ8+eKi4u1r333qtmzZqd82d76KGHNHLkSCUnJ+vaa69VWFiYtm3bpoKCAnuXvdTUVH344Yfq16+foqKiFBcX59LzAACBh659AACfmTJlisLDw3XJJZeobdu2te5Lqu6ee+5Rfn6+MjIy9Oijj2r+/PkaOnSoJOkXv/iFFixYoMcff1zdunXTq6++qjlz5rg0hn/+8586evSoMjIy9Ic//EF33XWX2rVrd86fbejQoXrnnXeUk5OjXr16qXfv3lqwYIFSUlLs18yfP185OTlKTk5WRkaGy88DAAQewzRN09+DAACgutTUVE2ePFmTJ0/291AAAHCIFSkAAAAAcBNBCgAAAADcRGkfAAAAALiJFSkAAAAAcBNBCgAAAADcRJACAAAAADcRpAAAAADATQQpAAAAAHATQQoAAAAA3ESQAgAAAAA3EaQAAAAAwE0EKQAAAABw0/8HWgpCsFmOO+8AAAAASUVORK5CYII=", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -21,24 +19,53 @@ "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", - "from editor.utils import get_colour_lut\n", "\n", - "t_values = np.linspace(0, 256, 256)\n", - "interpolated_values = get_colour_lut(variance=0.3, type=\"cubic\")\n", + "from editor.utils import get_random_saturation_per_hue_lut\n", "\n", - "plt.figure(figsize=(10, 6))\n", + "\n", + "plt.figure(figsize=(5, 3))\n", "plt.plot(\n", - " t_values,\n", - " interpolated_values,\n", - " label=\"Interpolated Function\",\n", - " marker=\"o\",\n", + " np.linspace(0, 256, 256),\n", + " get_random_saturation_per_hue_lut(),\n", " markersize=3,\n", ")\n", "plt.xlabel(\"t parameter\")\n", "plt.ylabel(\"Interpolated value\")\n", - "plt.grid(True)\n", - "plt.legend()\n", - "plt.show()" + "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", + " markersize=3,\n", + ")\n", + "plt.ylim(0, 255)\n", + "plt.xlabel(\"t parameter\")\n", + "plt.ylabel(\"Interpolated value\")\n", + "plt.grid(True)" ] } ], diff --git a/src/editor/utils/get_colour_lut.py b/src/editor/utils/get_colour_lut.py index 53f8149..7dfcd8f 100644 --- a/src/editor/utils/get_colour_lut.py +++ b/src/editor/utils/get_colour_lut.py @@ -4,17 +4,39 @@ from .random import random from .interpolate import interpolate, INTERPOLATION_TYPE -def get_edit_points(variance: float, count: int) -> List[float]: +def get_random_saturation_per_hue_lut( + variance: float = 0.4, count: int = 12 +) -> List[int]: + edit_points = [random(-variance, variance) + 1 for _ in range(count)] + return [ - random(i / (count - 1) - variance, i / (count - 1) + variance) - for i in range(count) + interpolate(edit_points, i / 255, type="cubic") + for i in np.linspace(0, 255, 256) ] -def get_colour_lut( - variance=0.1, count=5, type: INTERPOLATION_TYPE = "cubic" +def get_random_brightness_lut( + variance: float = 0.2, + count: int = 6, + type: INTERPOLATION_TYPE = "linear", + min_spectrum_size: float = 0.6, + max_spectrum_size: float = 1.15, ) -> List[int]: - edit_points = get_edit_points(variance=variance, count=count) + spectrum_size = np.random.uniform(min_spectrum_size, max_spectrum_size) + spectrum_start = np.random.uniform(0, max(0, 1 - spectrum_size)) + edit_points = sorted( + [ + spectrum_start, + *[ + spectrum_start + + i * spectrum_size / (count - 2) + + np.random.uniform(-variance, variance) + for i in range(1, count - 2) + ], + spectrum_start + spectrum_size, + ] + ) + return [ round(interpolate(edit_points, i / 255, type=type) * 255) for i in np.linspace(0, 255, 256)