colour.models.log_encoding_FLog

colour.models.log_encoding_FLog(in_r, bit_depth=10, out_normalised_code_value=True, in_reflection=True, constants={'a': 0.555556, 'b': 0.009468, 'c': 0.344676, 'cut1': 0.00089, 'cut2': 0.100537775223865, 'd': 0.790453, 'e': 8.735631, 'f': 0.092864})[source]

Defines the Fujifilm F-Log log encoding curve / opto-electronic transfer function.

Parameters:
  • in_r (numeric or array_like) – Linear reflection data :math`in`.
  • bit_depth (int, optional) – Bit depth used for conversion.
  • out_normalised_code_value (bool, optional) – Whether the non-linear Fujifilm F-Log data \(out\) is encoded as normalised code values.
  • in_reflection (bool, optional) – Whether the light level :math`in` to a camera is reflection.
  • constants (Structure, optional) – Fujifilm F-Log constants.
Returns:

Non-linear data \(out\).

Return type:

numeric or ndarray

Notes

Domain Scale - Reference Scale - 1
in_r [0, 1] [0, 1]
Range Scale - Reference Scale - 1
out_r [0, 1] [0, 1]

References

[Fujifilm2016]

Examples

>>> log_encoding_FLog(0.18)  # doctest: +ELLIPSIS
0.4593184...

The values of 2-2. F-Log Code Value table in [Fujifilm2016] are obtained as follows:

>>> x = np.array([0, 18, 90]) / 100
>>> np.around(log_encoding_FLog(x, 10, False) * 100, 1)
array([  3.5,  46.3,  73.2])
>>> np.around(log_encoding_FLog(x) * (2 ** 10 - 1)).astype(np.int)
array([ 95, 470, 705])