CKboss / PyApplyLUT

apply .cube file on image in python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PyApplyLUT

Apply .cube file on image in python

The LUT.h wrapper for python. Support both .cube file and numpy lut format.

Build and Install

requirements:

  • pybind11
  • eigen
  • the C++ compiler support C++14 and openmp

install:

mkdir build
cmake ..
add the generated .so file to the path where python can find it.

How to use

import cv2
import numpy as np
from pathlib2 import Path

import sys
# the path of .so where python can find it
sys.path.append("Q:/WorkSpace/bfood/lut-master/build/Debug")
from python.PyApplyLUT import PyApplyLUT
from python.lut_tools import cube_to_npy

INPUT_IMG = Path(r".\test\1.jpg")
LUT_FILE = Path(r".\test\1.cube")

# normlizer the input picture to 0~1
img = cv2.imread(INPUT_IMG.as_posix())
img = img / 255

# apply lut 

# method 1 load lut from a .cube file
alut = PyApplyLUT(lut_file=LUT_FILE)
new_img = alut.apply_lut(img)
# recover to 0~255
new_img = new_img * 255
cv2.imwrite("./test/new_img_1.jpg",new_img)

# method 2 load lut from the np array
cubenpy = cube_to_npy(LUT_FILE)
alut = PyApplyLUT(lut_dim=32, lut_cube=cubenpy)
new_img = alut.apply_lut(img)
# recover to 0~255
new_img = new_img * 255
cv2.imwrite("./test/new_img_2.jpg",new_img)

The origin image: origin_image

The applyed lut image lut_image

About

apply .cube file on image in python

License:GNU General Public License v3.0


Languages

Language:C++ 86.4%Language:Python 12.5%Language:CMake 1.1%