Created
April 3, 2016 11:43
-
-
Save asus4/09b1f5403c63ceab5ae34710cbe2809e to your computer and use it in GitHub Desktop.
Make LUT Texture
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# coding: UTF-8 | |
import cv2 | |
import numpy as np | |
def make_lut256x16(exportPath): | |
''' 256 x 16 LUT ''' | |
colors = [] | |
for y in range(0, 16): | |
rows = [] | |
for x in range(0, 256): | |
rows.append([ | |
(x / 16) * 16, # blue | |
y * 16, # green | |
(x % 16) * 16 # red | |
]) | |
colors.append(rows) | |
image = np.array(colors) | |
if exportPath: | |
cv2.imwrite(exportPath, image) | |
return image | |
def make_lut1024x32(exportPath): | |
''' 1024 x 32 LUT ''' | |
colors = [] | |
for y in range(0, 32): | |
rows = [] | |
for x in range(0, 1024): | |
rows.append([ | |
(x / 32) * 8, # blue | |
y * 8, # green | |
(x % 32) * 8 # red | |
]) | |
colors.append(rows) | |
image = np.array(colors) | |
if exportPath: | |
cv2.imwrite(exportPath, image) | |
return image | |
def make_lut512x512(exportPath): | |
''' 512 x 512 Basic LUT ''' | |
colors = [] | |
for y in range(0, 512): | |
rows = [] | |
for x in range(0, 512): | |
i = (x % 64, y % 64) | |
rows.append([ # BGR | |
(y / 2 + x / 16), # blue | |
i[1] * 4, # green | |
i[0] * 4 # red | |
]) | |
colors.append(rows) | |
image = np.array(colors) | |
if exportPath: | |
cv2.imwrite(exportPath, image) | |
return image | |
if __name__ == '__main__': | |
import argparse | |
import sys | |
parser = argparse.ArgumentParser(description='LUT Texture maker') | |
parser.add_argument('path', | |
type=str, | |
nargs='?', | |
default='lut.png', | |
help='output filename') | |
parser.add_argument('-s', '--size', | |
type=str, | |
nargs='?', | |
default='512x512', | |
help='256x16 or 1024x32 or 512x512') | |
args = parser.parse_args() | |
if args.size == '512x512': | |
make_lut512x512(args.path) | |
elif args.size == '256x16': | |
make_lut256x16(args.path) | |
elif args.size == '1024x32': | |
make_lut1024x32(args.path) | |
else: | |
sys.exit('Unsupported size') |
SA418-St418
commented
Nov 23, 2021
•
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment