Implements support for *Panasonic GH4* colorspaces conversions and transfer
functions based on empirical data.
"""
-from panasonic_gh4_data import *
+# from panasonic_gh4_data import *
import numpy as np
from scipy import interpolate
lut_directory,
lut_resolution_1d,
aliases,
- style=None):
+ style=None,
+ variant=''):
"""
Creates colorspace covering the conversion from GH4 picture styles
to ACES based on empirical data
The resolution of generated 1D LUTs
aliases : list of str
Aliases for this colorspace
+ style : str
+ Associated Photo Style
+ variant : str
+ Variant of processing
Returns
-------
and identifying information for the requested colorspace.
"""
- name = 'GH4-%s - GH4-%s-Gamut' % (transfer_function, gamut)
+ name = ('GH4-%s - GH4-%s-Gamut %s' % (transfer_function, gamut, variant)).strip()
if transfer_function == '':
- name = 'Linear - GH4-%s-Gamut' % gamut
+ name = ('Linear - GH4-%s-Gamut %s' % (gamut, variant)).strip()
if gamut == '':
name = 'Curve - GH4-%s' % transfer_function
0, 0, 0, 1.0],
'direction': 'forward'})
- if gamut.endswith('XYZ'):
+ if variant == ('XYZ'):
cs.from_reference_transforms = []
return cs
- if gamut.endswith('Calibrated'):
- wb = [0.]*16
- wb[0] = calibration_wb[style][0]
- wb[5] = calibration_wb[style][1]
- wb[10] = calibration_wb[style][2]
- wb[15] = 1.0
- cs.to_reference_transforms.append({
- 'type': 'matrix',
- 'matrix': wb,
- 'direction': 'forward'})
+ if variant == ('Calibrated'):
+ # wb = [0.]*16
+ # wb[0] = calibration_wb[style][0]
+ # wb[5] = calibration_wb[style][1]
+ # wb[10] = calibration_wb[style][2]
+ # wb[15] = 1.0
+ # cs.to_reference_transforms.append({
+ # 'type': 'matrix',
+ # 'matrix': wb,
+ # 'direction': 'forward'})
cs.to_reference_transforms.append({
'type': 'matrix',
'matrix': (calibration_matrices[style][0] + [0.0] +
# Linearization and XYZ conversion
style_3 = create_gh4_style(
- '%s-XYZ' % style,
+ '%s' % style,
style,
lut_directory,
lut_resolution_1d,
- ['gh4_%s_xyz' % style.lower().replace('-','_')])
+ ['gh4_%s_xyz' % style.lower().replace('-','_')],
+ variant='XYZ')
colorspaces.append(style_3)
# Primaries Only
# Full conversion calibrated
style_5 = create_gh4_style(
- '%s-Calibrated' % style,
+ '%s' % style,
style,
lut_directory,
lut_resolution_1d,
['gh4_%s_gh4_calibrated_gamut'% style.lower().replace('-','_')],
- style)
+ style,
+ variant='Calibrated')
colorspaces.append(style_5)
# Primaries Only calibrated
lut_directory,
lut_resolution_1d,
['lin_gh4_%s_calibrated_gamut'%style.lower().replace('-','_')],
- style)
+ style,
+ variant='Calibrated')
colorspaces.append(style_6)
return colorspaces
+calibration_matrices = {
+
+'Cinelike-D': [[1.165504, 0.251869, -0.118313],
+ [-0.369525, 1.80097, -0.096786],
+ [-0.05245, 0.097669, 1.326889]],
+ 'Cinelike-V': [[1.060891, 0.353566, -0.102382],
+ [-0.460172, 1.927755, -0.122295],
+ [-0.129601, 0.137134, 1.373328]],
+ 'Custom': [[0.946141, 0.485274, -0.087787],
+ [-0.555203, 2.05073, -0.100206],
+ [-0.128126, 0.12821, 1.426733]],
+ 'Natural': [[0.874551, 0.439286, -0.085863],
+ [-0.516138, 1.916301, -0.11907],
+ [-0.071172, 0.056567, 1.347203]],
+ 'Portrait': [[0.660386, 0.650877, -0.060211],
+ [-0.600758, 1.998228, -0.085769],
+ [-0.110666, 0.124363, 1.339439]],
+ 'Scenery': [[0.812315, 0.534553, -0.098869],
+ [-0.542253, 1.934419, -0.071867],
+ [-0.123626, 0.142352, 1.292352]],
+ 'Standard': [[0.886056, 0.415669, -0.073317],
+ [-0.482919, 1.84707, -0.088924],
+ [-0.117718, 0.126855, 1.321097]],
+ 'V-Log': [[1.127527, 0.284008, -0.033005],
+ [-0.192653, 1.619262, -0.030388],
+ [-0.080181, 0.057527, 1.39992]],
+ 'Vivid': [[0.754924, 0.526196, -0.061668],
+ [-0.503233, 1.851748, -0.065254],
+ [-0.197153, 0.267533, 1.212053]]
+
+}