本文整理汇总了Python中aces_ocio.utilities.ColorSpace类的典型用法代码示例。如果您正苦于以下问题:Python ColorSpace类的具体用法?Python ColorSpace怎么用?Python ColorSpace使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ColorSpace类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: create_transfer_colorspace
def create_transfer_colorspace(name='transfer',
transfer_function_name='transfer_function',
transfer_function=lambda x: x,
lut_directory='/tmp',
lut_resolution_1d=1024,
aliases=[]):
"""
Object description.
Parameters
----------
parameter : type
Parameter description.
Returns
-------
type
Return value description.
"""
cs = ColorSpace(name)
cs.description = 'The %s color space' % name
cs.aliases = aliases
cs.equality_group = name
cs.family = 'Utility'
cs.is_data = False
# A linear space needs allocation variables
cs.allocation_type = ocio.Constants.ALLOCATION_UNIFORM
cs.allocation_vars = [0, 1]
# Sample the transfer function
data = array.array('f', '\0' * lut_resolution_1d * 4)
for c in range(lut_resolution_1d):
data[c] = transfer_function(c / (lut_resolution_1d - 1))
# Write the sampled data to a LUT
lut = '%s_to_linear.spi1d' % transfer_function_name
genlut.write_SPI_1d(
os.path.join(lut_directory, lut),
0,
1,
data,
lut_resolution_1d,
1)
# Create the 'to_reference' transforms
cs.to_reference_transforms = []
cs.to_reference_transforms.append({
'type': 'lutFile',
'path': lut,
'interpolation': 'linear',
'direction': 'forward'})
# Create the 'from_reference' transforms
cs.from_reference_transforms = []
return cs
示例2: create_matrix_colorspace
def create_matrix_colorspace(name='matrix',
from_reference_values=None,
to_reference_values=None,
aliases=None):
"""
Object description.
Parameters
----------
parameter : type
Parameter description.
Returns
-------
type
Return value description.
"""
if from_reference_values is None:
from_reference_values = []
if to_reference_values is None:
to_reference_values = []
if aliases is None:
aliases = []
cs = ColorSpace(name)
cs.description = 'The %s color space' % name
cs.aliases = aliases
cs.equality_group = name
cs.family = 'Utility'
cs.is_data = False
# A linear space needs allocation variables.
cs.allocation_type = ocio.Constants.ALLOCATION_UNIFORM
cs.allocation_vars = [0, 1]
cs.to_reference_transforms = []
if to_reference_values:
for matrix in to_reference_values:
cs.to_reference_transforms.append({
'type': 'matrix',
'matrix': mat44_from_mat33(matrix),
'direction': 'forward'})
cs.from_reference_transforms = []
if from_reference_values:
for matrix in from_reference_values:
cs.from_reference_transforms.append({
'type': 'matrix',
'matrix': mat44_from_mat33(matrix),
'direction': 'forward'})
return cs
示例3: create_ACES
def create_ACES():
"""
Object description.
Parameters
----------
parameter : type
Parameter description.
Returns
-------
type
Return value description.
"""
# Defining the reference colorspace.
aces2065_1 = ColorSpace('ACES2065-1')
aces2065_1.description = (
'The Academy Color Encoding System reference color space')
aces2065_1.equality_group = ''
aces2065_1.aliases = ['lin_ap0', 'aces']
aces2065_1.family = 'ACES'
aces2065_1.is_data = False
aces2065_1.allocation_type = ocio.Constants.ALLOCATION_LG2
aces2065_1.allocation_vars = [-8, 5, 0.00390625]
return aces2065_1
示例4: create_Dolby_PQ_scaled
def create_Dolby_PQ_scaled(aces_ctl_directory,
lut_directory,
lut_resolution_1d,
cleanup,
name='pq',
aliases=None,
min_value=0.0,
max_value=1.0,
input_scale=1.0,
middle_grey=0.18,
min_exposure=-6.0,
max_exposure=6.5):
if aliases is None:
aliases = []
cs = ColorSpace(name)
cs.description = 'The %s color space' % name
cs.aliases = aliases
cs.equality_group = name
cs.family = 'Utility'
cs.is_data = False
ctls = [os.path.join(
aces_ctl_directory,
'utilities',
'ACESlib.OCIOShaper_to_lin_param.a1.0.0.ctl')]
lut = '%s_to_linear.spi1d' % name
lut = sanitize(lut)
generate_1d_LUT_from_CTL(
os.path.join(lut_directory, lut),
ctls,
lut_resolution_1d,
'float',
input_scale,
1.0,
{'middleGrey': middle_grey,
'minExposure': min_exposure,
'maxExposure': max_exposure},
cleanup,
aces_ctl_directory,
min_value,
max_value)
cs.to_reference_transforms = []
cs.to_reference_transforms.append({
'type': 'lutFile',
'path': lut,
'interpolation': 'linear',
'direction': 'forward'})
cs.from_reference_transforms = []
return cs
示例5: create_ACEScg
def create_ACEScg(aces_ctl_directory,
lut_directory,
lut_resolution_1d,
cleanup,
name='ACEScg'):
"""
Creates the *ACEScg* colorspace.
Parameters
----------
parameter : type
Parameter description.
Returns
-------
Colorspace
*ACEScg* colorspace.
"""
cs = ColorSpace(name)
cs.description = 'The %s color space' % name
cs.aliases = ["lin_ap1"]
cs.equality_group = ''
cs.family = 'ACES'
cs.is_data = False
cs.allocation_type = ocio.Constants.ALLOCATION_LG2
cs.allocation_vars = [-8, 5, 0.00390625]
cs.to_reference_transforms = []
# *AP1* primaries to *AP0* primaries.
cs.to_reference_transforms.append({
'type': 'matrix',
'matrix': mat44_from_mat33(ACES_AP1_TO_AP0),
'direction': 'forward'})
cs.from_reference_transforms = []
return cs
示例6: create_dolbypq_scaled
def create_dolbypq_scaled(
aces_CTL_directory,
lut_directory,
lut_resolution_1d,
cleanup,
name="pq",
aliases=[],
min_value=0.0,
max_value=1.0,
input_scale=1.0,
middle_grey=0.18,
min_exposure=-6.0,
max_exposure=6.5,
):
cs = ColorSpace(name)
cs.description = "The %s color space" % name
cs.aliases = aliases
cs.equality_group = name
cs.family = "Utility"
cs.is_data = False
ctls = [os.path.join(aces_CTL_directory, "utilities", "ACESlib.DolbyPQ_to_lin_param.a1.0.0.ctl")]
lut = "%s_to_linear.spi1d" % name
lut = sanitize(lut)
generate_1d_LUT_from_CTL(
os.path.join(lut_directory, lut),
ctls,
lut_resolution_1d,
"float",
input_scale,
1.0,
{"middleGrey": middle_grey, "minExposure": min_exposure, "maxExposure": max_exposure},
cleanup,
aces_CTL_directory,
min_value,
max_value,
)
cs.to_reference_transforms = []
cs.to_reference_transforms.append(
{"type": "lutFile", "path": lut, "interpolation": "linear", "direction": "forward"}
)
cs.from_reference_transforms = []
return cs
示例7: create_dolbypq
def create_dolbypq(aces_CTL_directory,
lut_directory,
lut_resolution_1d,
cleanup,
name='pq',
aliases=[],
min_value=0.0,
max_value=1.0,
input_scale=1.0):
cs = ColorSpace(name)
cs.description = 'The %s color space' % name
cs.aliases = aliases
cs.equality_group = name
cs.family = 'Utility'
cs.is_data = False
ctls = [os.path.join(
aces_CTL_directory,
'utilities',
'ACESlib.OCIO_shaper_dolbypq_to_lin.a1.0.0.ctl')]
lut = '%s_to_linear.spi1d' % name
lut = sanitize(lut)
generate_1d_LUT_from_CTL(
os.path.join(lut_directory, lut),
ctls,
lut_resolution_1d,
'float',
input_scale,
1.0,
{},
cleanup,
aces_CTL_directory,
min_value,
max_value)
cs.to_reference_transforms = []
cs.to_reference_transforms.append({
'type': 'lutFile',
'path': lut,
'interpolation': 'linear',
'direction': 'forward'})
cs.from_reference_transforms = []
return cs
示例8: create_raw
def create_raw():
# *Raw* utility space
name = "Raw"
raw = ColorSpace(name)
raw.description = 'The %s color space' % name
raw.aliases = []
raw.equality_group = name
raw.family = 'Utility'
raw.is_data = True
return raw
示例9: create_raw
def create_raw():
"""
Creates the *raw* color space
Parameters
----------
None
Returns
-------
ColorSpace
*raw* and all its identifying information
"""
# *Raw* utility space
name = 'Raw'
raw = ColorSpace(name)
raw.description = 'The %s color space' % name
raw.aliases = ['raw']
raw.equality_group = name
raw.family = 'Utility'
raw.is_data = True
return raw
示例10: create_ACEScc
def create_ACEScc(aces_ctl_directory,
lut_directory,
lut_resolution_1d,
cleanup,
name='ACEScc',
min_value=0,
max_value=1,
input_scale=1):
"""
Creates the *ACEScc* colorspace.
Parameters
----------
parameter : type
Parameter description.
Returns
-------
Colorspace
*ACEScc* colorspace.
"""
cs = ColorSpace(name)
cs.description = 'The %s color space' % name
cs.aliases = ["acescc_ap1"]
cs.equality_group = ''
cs.family = 'ACES'
cs.is_data = False
cs.allocation_type = ocio.Constants.ALLOCATION_UNIFORM
cs.allocation_vars = [min_value, max_value]
ctls = [os.path.join(aces_ctl_directory,
'ACEScc',
'ACEScsc.ACEScc_to_ACES.a1.0.0.ctl')]
lut = '%s_to_linear.spi1d' % name
lut = sanitize(lut)
generate_1d_LUT_from_CTL(
os.path.join(lut_directory, lut),
ctls,
lut_resolution_1d,
'float',
input_scale,
1,
{'transferFunctionOnly':1},
cleanup,
aces_ctl_directory,
min_value,
max_value,
1)
cs.to_reference_transforms = []
cs.to_reference_transforms.append({
'type': 'lutFile',
'path': lut,
'interpolation': 'linear',
'direction': 'forward'})
# *AP1* primaries to *AP0* primaries.
cs.to_reference_transforms.append({
'type': 'matrix',
'matrix': mat44_from_mat33(ACES_AP1_TO_AP0),
'direction': 'forward'})
cs.from_reference_transforms = []
return cs
示例11: create_log_c
def create_log_c(gamut,
transfer_function,
exposure_index,
name,
lut_directory,
lut_resolution_1d,
aliases):
"""
Object description.
LogC to ACES.
Parameters
----------
parameter : type
Parameter description.
Returns
-------
type
Return value description.
"""
name = '%s (EI%s) - %s' % (transfer_function, exposure_index, gamut)
if transfer_function == '':
name = 'Linear - ARRI %s' % gamut
if gamut == '':
name = '%s (EI%s)' % (transfer_function, exposure_index)
cs = ColorSpace(name)
cs.description = name
cs.aliases = aliases
cs.equality_group = ''
cs.family = 'Input/ARRI'
cs.is_data = False
# A linear space needs allocation variables
if transfer_function == '':
cs.allocation_type = ocio.Constants.ALLOCATION_LG2
cs.allocation_vars = [-8, 5, 0.00390625]
# Globals.
IDT_maker_version = '0.08'
nominal_EI = 400
black_signal = 0.003907
mid_gray_signal = 0.01
encoding_gain = 0.256598
encoding_offset = 0.391007
def gain_for_EI(EI):
return (math.log(EI / nominal_EI) / math.log(2) * (
0.89 - 1) / 3 + 1) * encoding_gain
def log_c_inverse_parameters_for_EI(EI):
cut = 1 / 9
slope = 1 / (cut * math.log(10))
offset = math.log10(cut) - slope * cut
gain = EI / nominal_EI
gray = mid_gray_signal / gain
# The higher the EI, the lower the gamma.
enc_gain = gain_for_EI(EI)
enc_offset = encoding_offset
for i in range(0, 3):
nz = ((95 / 1023 - enc_offset) / enc_gain - offset) / slope
enc_offset = encoding_offset - math.log10(1 + nz) * enc_gain
a = 1 / gray
b = nz - black_signal / gray
e = slope * a * enc_gain
f = enc_gain * (slope * b + offset) + enc_offset
# Ensuring we can return relative exposure.
s = 4 / (0.18 * EI)
t = black_signal
b += a * t
a *= s
f += e * t
e *= s
return {'a': a,
'b': b,
'cut': (cut - b) / a,
'c': enc_gain,
'd': enc_offset,
'e': e,
'f': f}
def log_c_to_linear(code_value, exposure_index):
p = log_c_inverse_parameters_for_EI(exposure_index)
breakpoint = p['e'] * p['cut'] + p['f']
if code_value > breakpoint:
linear = ((pow(10, (code_value / 1023 - p['d']) / p['c']) -
p['b']) / p['a'])
else:
linear = (code_value / 1023 - p['f']) / p['e']
return linear
cs.to_reference_transforms = []
#.........这里部分代码省略.........
示例12: create_protune
def create_protune(gamut,
transfer_function,
lut_directory,
lut_resolution_1d,
aliases):
"""
Creates colorspace covering the conversion from ProTune to ACES, with various transfer
functions and encoding gamuts covered
Parameters
----------
gamut : str
The name of the encoding gamut to use.
transfer_function : str
The name of the transfer function to use
lut_directory : str or unicode
The directory to use when generating LUTs
lut_resolution_1d : int
The resolution of generated 1D LUTs
aliases : list of str
Aliases for this colorspace
Returns
-------
ColorSpace
A ColorSpace container class referencing the LUTs, matrices and identifying
information for the requested colorspace.
"""
# The gamut should be marked as experimental until matrices are fully
# verified.
name = '%s - %s - Experimental' % (transfer_function, gamut)
if transfer_function == '':
name = 'Linear - %s - Experimental' % gamut
if gamut == '':
name = 'Curve - %s' % transfer_function
cs = ColorSpace(name)
cs.description = name
cs.aliases = aliases
cs.equality_group = ''
cs.family = 'Input/GoPro'
cs.is_data = False
# A linear space needs allocation variables.
if transfer_function == '':
cs.allocation_type = ocio.Constants.ALLOCATION_LG2
cs.allocation_vars = [-8, 5, 0.00390625]
def protune_to_linear(normalized_code_value):
c1 = 113.0
c2 = 1.0
c3 = 112.0
linear = ((pow(c1, normalized_code_value) - c2) / c3)
return linear
cs.to_reference_transforms = []
if transfer_function == 'Protune Flat':
data = array.array('f', '\0' * lut_resolution_1d * 4)
for c in range(lut_resolution_1d):
data[c] = protune_to_linear(float(c) / (lut_resolution_1d - 1))
lut = '%s_to_linear.spi1d' % transfer_function
lut = sanitize(lut)
genlut.write_SPI_1d(
os.path.join(lut_directory, lut),
0,
1,
data,
lut_resolution_1d,
1)
cs.to_reference_transforms.append({
'type': 'lutFile',
'path': lut,
'interpolation': 'linear',
'direction': 'forward'})
if gamut == 'Protune Native':
cs.to_reference_transforms.append({
'type': 'matrix',
'matrix': [0.533448429, 0.32413911, 0.142412421, 0,
-0.050729924, 1.07572006, -0.024990416, 0,
0.071419661, -0.290521962, 1.219102381, 0,
0, 0, 0, 1],
'direction': 'forward'})
cs.from_reference_transforms = []
return cs
示例13: create_red_log_film
def create_red_log_film(gamut,
transfer_function,
lut_directory,
lut_resolution_1d,
aliases=None):
"""
Creates colorspace covering the conversion from RED spaces to ACES, with various
transfer functions and encoding gamuts covered
Parameters
----------
gamut : str
The name of the encoding gamut to use.
transfer_function : str
The name of the transfer function to use
lut_directory : str or unicode
The directory to use when generating LUTs
lut_resolution_1d : int
The resolution of generated 1D LUTs
aliases : list of str
Aliases for this colorspace
Returns
-------
ColorSpace
A ColorSpace container class referencing the LUTs, matrices and identifying
information for the requested colorspace.
"""
if aliases is None:
aliases = []
name = '%s - %s' % (transfer_function, gamut)
if transfer_function == '':
name = 'Linear - %s' % gamut
if gamut == '':
name = 'Curve - %s' % transfer_function
cs = ColorSpace(name)
cs.description = name
cs.aliases = aliases
cs.equality_group = ''
cs.family = 'Input/RED'
cs.is_data = False
# A linear space needs allocation variables
if transfer_function == '':
cs.allocation_type = ocio.Constants.ALLOCATION_LG2
cs.allocation_vars = [-8, 5, 0.00390625]
def cineon_to_linear(code_value):
n_gamma = 0.6
black_point = 95
white_point = 685
code_value_to_density = 0.002
black_linear = pow(10, (black_point - white_point) * (
code_value_to_density / n_gamma))
code_linear = pow(10, (code_value - white_point) * (
code_value_to_density / n_gamma))
return (code_linear - black_linear) / (1 - black_linear)
cs.to_reference_transforms = []
if transfer_function == 'REDlogFilm':
data = array.array('f', '\0' * lut_resolution_1d * 4)
for c in range(lut_resolution_1d):
data[c] = cineon_to_linear(1023 * c / (lut_resolution_1d - 1))
lut = 'CineonLog_to_linear.spi1d'
genlut.write_SPI_1d(
os.path.join(lut_directory, lut),
0,
1,
data,
lut_resolution_1d,
1)
cs.to_reference_transforms.append({
'type': 'lutFile',
'path': lut,
'interpolation': 'linear',
'direction': 'forward'})
if gamut == 'DRAGONcolor':
cs.to_reference_transforms.append({
'type': 'matrix',
'matrix': mat44_from_mat33([0.532279, 0.376648, 0.091073,
0.046344, 0.974513, -0.020860,
-0.053976, -0.000320, 1.054267]),
'direction': 'forward'})
elif gamut == 'DRAGONcolor2':
cs.to_reference_transforms.append({
'type': 'matrix',
'matrix': mat44_from_mat33([0.468452, 0.331484, 0.200064,
0.040787, 0.857658, 0.101553,
-0.047504, -0.000282, 1.047756]),
'direction': 'forward'})
elif gamut == 'REDcolor':
#.........这里部分代码省略.........
示例14: create_ODTs
def create_ODTs(aces_ctl_directory,
lut_directory,
lut_resolution_1d,
lut_resolution_3d,
odt_info,
shaper_name,
cleanup,
linear_display_space,
log_display_space):
"""
Object description.
Parameters
----------
parameter : type
Parameter description.
Returns
-------
type
Return value description.
"""
colorspaces = []
displays = {}
# -------------------------------------------------------------------------
# *RRT / ODT* Shaper Options
# -------------------------------------------------------------------------
shaper_data = {}
# Defining the *Log 2* shaper.
log2_shaper_name = shaper_name
log2_shaper_name_aliases = ['crv_%s' % compact(log2_shaper_name)]
log2_params = {
'middleGrey': 0.18,
'minExposure': -6,
'maxExposure': 6.5}
log2_shaper_colorspace = create_generic_log(
aces_ctl_directory,
lut_directory,
lut_resolution_1d,
cleanup,
name=log2_shaper_name,
middle_grey=log2_params['middleGrey'],
min_exposure=log2_params['minExposure'],
max_exposure=log2_params['maxExposure'],
aliases=log2_shaper_name_aliases)
colorspaces.append(log2_shaper_colorspace)
shaper_input_scale_generic_log2 = 1
# *Log 2* shaper name and *CTL* transforms bundled up.
log2_shaper_data = [
log2_shaper_name,
os.path.join('%s',
'utilities',
'ACESlib.Log2_to_Lin_param.a1.0.0.ctl'),
os.path.join('%s',
'utilities',
'ACESlib.Lin_to_Log2_param.a1.0.0.ctl'),
shaper_input_scale_generic_log2,
log2_params]
shaper_data[log2_shaper_name] = log2_shaper_data
# Space with a more user-friendly name. Direct copy otherwise.
log2_shaper_copy_name = 'Log2 Shaper'
log2_shaper_copy_colorspace = ColorSpace(log2_shaper_copy_name)
log2_shaper_copy_colorspace.description = (
'The %s color space' % log2_shaper_copy_name)
log2_shaper_copy_colorspace.aliases = [
'crv_%s' % compact(log2_shaper_copy_name)]
log2_shaper_copy_colorspace.equality_group = log2_shaper_copy_name
log2_shaper_copy_colorspace.family = log2_shaper_colorspace.family
log2_shaper_copy_colorspace.is_data = log2_shaper_colorspace.is_data
log2_shaper_copy_colorspace.to_reference_transforms = list(
log2_shaper_colorspace.to_reference_transforms)
log2_shaper_copy_colorspace.from_reference_transforms = list(
log2_shaper_colorspace.from_reference_transforms)
colorspaces.append(log2_shaper_copy_colorspace)
# Defining the *Log2 shaper that includes the AP1* primaries.
log2_shaper_api1_name = '%s - AP1' % 'Log2 Shaper'
log2_shaper_api1_colorspace = ColorSpace(log2_shaper_api1_name)
log2_shaper_api1_colorspace.description = (
'The %s color space' % log2_shaper_api1_name)
log2_shaper_api1_colorspace.aliases = [
'%s_ap1' % compact(log2_shaper_copy_name)]
log2_shaper_api1_colorspace.equality_group = log2_shaper_api1_name
log2_shaper_api1_colorspace.family = log2_shaper_colorspace.family
log2_shaper_api1_colorspace.is_data = log2_shaper_colorspace.is_data
log2_shaper_api1_colorspace.to_reference_transforms = list(
log2_shaper_colorspace.to_reference_transforms)
log2_shaper_api1_colorspace.from_reference_transforms = list(
log2_shaper_colorspace.from_reference_transforms)
# *AP1* primaries to *AP0* primaries
log2_shaper_api1_colorspace.to_reference_transforms.append({
#.........这里部分代码省略.........
示例15: create_v_log
def create_v_log(gamut,
transfer_function,
lut_directory,
lut_resolution_1d,
aliases):
"""
Object description.
Panasonic V-Log to ACES.
Parameters
----------
parameter : type
Parameter description.
Returns
-------
type
Return value description.
"""
name = '%s - %s' % (transfer_function, gamut)
if transfer_function == '':
name = 'Linear - %s' % gamut
if gamut == '':
name = 'Curve - %s' % transfer_function
cs = ColorSpace(name)
cs.description = name
cs.aliases = aliases
cs.equality_group = ''
cs.family = 'Input/Panasonic'
cs.is_data = False
# A linear space needs allocation variables
if transfer_function == '':
cs.allocation_type = ocio.Constants.ALLOCATION_LG2
cs.allocation_vars = [-8, 5, 0.00390625]
def v_log_to_linear(x):
cut_inv = 0.181
b = 0.00873
c = 0.241514
d = 0.598206
if x <= cut_inv:
return (x - 0.125) / 5.6
else:
return pow(10, (x - d) / c) - b
cs.to_reference_transforms = []
if transfer_function == 'V-Log':
data = array.array('f', '\0' * lut_resolution_1d * 4)
for c in range(lut_resolution_1d):
data[c] = v_log_to_linear(float(c) / (lut_resolution_1d - 1))
lut = '%s_to_linear.spi1d' % transfer_function
genlut.write_SPI_1d(
os.path.join(lut_directory, lut),
0.0,
1.0,
data,
lut_resolution_1d,
1)
cs.to_reference_transforms.append({
'type': 'lutFile',
'path': lut,
'interpolation': 'linear',
'direction': 'forward'})
if gamut == 'V-Gamut':
cs.to_reference_transforms.append({
'type': 'matrix',
'matrix': [0.724382758, 0.166748484, 0.108497411, 0.0,
0.021354009, 0.985138372, -0.006319092, 0.0,
-0.009234278, -0.00104295, 1.010272625, 0.0,
0, 0, 0, 1.0],
'direction': 'forward'})
cs.from_reference_transforms = []
return cs