【Python】3D LUTのサイズを変換する!ついでにMetalをPythonに書き換えてLUT生成する

iPhone

結局、iPhoneアプリのフィルターに3D LUTを使おうと
2D LUTで十分と良いといえば、、、悩むところです。

最新の iPhoneだと楽勝で動くでしょう、とりあえず iPhone6sから使えるようにしたいと思っています

3D LUTのサイズ変換すると言うだけなのですがやっておきます

pip install numpy scipy
$ pip install numpy scipy
Collecting numpy
  Downloading numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl (21.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.2/21.2 MB 2.3 MB/s eta 0:00:00
Collecting scipy
  Downloading scipy-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl (39.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 39.4/39.4 MB 2.4 MB/s eta 0:00:00
Installing collected packages: numpy, scipy
Successfully installed numpy-2.0.2 scipy-1.13.1

例えば Davinci Resolveの33 cube

TITLE "Generated by Resolve"
LUT_3D_SIZE 33

0.0410315 0.0410315 0.0410315
0.0659495 0.0374304 0.0407111
0.0893873 0.0308995 0.0404364
0.109712 0.0176699 0.0402228
0.12781 0.00357061 0.0400549
0.146532 0 0.0399023
0.16968 0 0.0397345
0.197116 0 0.0395666

を 16 cubeに変換しました

LUT_3D_SIZE 16
#converted
0.04103150 0.04103150 0.04103150
0.09209726 0.02913555 0.04040792
0.13280253 0.00261845 0.04001421
0.18065440 0.00000000 0.03966734
0.24770707 0.00000000 0.03936525
0.33204133 0.00000000 0.03939880

問題なさそうです

Metal のシェーダーを全部pythonに書き換えた。

お気軽にコメントください!

スパム対応のためコメント認証に数日かかることがありますが、お気軽にコメントいただけると嬉しいです^^

コメント

タイトルとURLをコピーしました