def test_n_dimensional_log_decoding_Cineon(self): """ Tests :func:`colour.models.rgb.transfer_functions.cineon.\ log_decoding_Cineon` definition n-dimensional arrays support. """ V = 0.457319613085418 L = 0.18 np.testing.assert_almost_equal( log_decoding_Cineon(V), L, decimal=7) V = np.tile(V, 6) L = np.tile(L, 6) np.testing.assert_almost_equal( log_decoding_Cineon(V), L, decimal=7) V = np.reshape(V, (2, 3)) L = np.reshape(L, (2, 3)) np.testing.assert_almost_equal( log_decoding_Cineon(V), L, decimal=7) V = np.reshape(V, (2, 3, 1)) L = np.reshape(L, (2, 3, 1)) np.testing.assert_almost_equal( log_decoding_Cineon(V), L, decimal=7)
def test_n_dimensional_log_decoding_Cineon(self): """ Tests :func:`colour.models.rgb.transfer_functions.cineon.\ log_decoding_Cineon` definition n-dimensional arrays support. """ V = 0.457319613085418 L = 0.18 np.testing.assert_almost_equal( log_decoding_Cineon(V), L, decimal=7) V = np.tile(V, 6) L = np.tile(L, 6) np.testing.assert_almost_equal( log_decoding_Cineon(V), L, decimal=7) V = np.reshape(V, (2, 3)) L = np.reshape(L, (2, 3)) np.testing.assert_almost_equal( log_decoding_Cineon(V), L, decimal=7) V = np.reshape(V, (2, 3, 1)) L = np.reshape(L, (2, 3, 1)) np.testing.assert_almost_equal( log_decoding_Cineon(V), L, decimal=7)
def test_nan_log_decoding_Cineon(self): """ Tests :func:`colour.models.rgb.transfer_functions.cineon.\ log_decoding_Cineon` definition nan support. """ log_decoding_Cineon( np.array([-1.0, 0.0, 1.0, -np.inf, np.inf, np.nan]))
def test_nan_log_decoding_Cineon(self): """ Tests :func:`colour.models.rgb.transfer_functions.cineon.\ log_decoding_Cineon` definition nan support. """ log_decoding_Cineon(np.array([-1.0, 0.0, 1.0, -np.inf, np.inf, np.nan]))
def test_log_decoding_Cineon(self): """ Tests :func:`colour.models.rgb.transfer_functions.cineon.\ log_decoding_Cineon` definition. """ self.assertAlmostEqual( log_decoding_Cineon(0.092864125122190), 0.0, places=7) self.assertAlmostEqual( log_decoding_Cineon(0.457319613085418), 0.18, places=7) self.assertAlmostEqual( log_decoding_Cineon(0.669599217986315), 1.0, places=7)
def test_domain_range_scale_log_decoding_Cineon(self): """ Tests :func:`colour.models.rgb.transfer_functions.cineon.\ log_decoding_Cineon` definition domain and range scale support. """ y = 0.457319613085418 x = log_decoding_Cineon(y) d_r = (('reference', 1), (1, 1), (100, 100)) for scale, factor in d_r: with domain_range_scale(scale): np.testing.assert_almost_equal( log_decoding_Cineon(y * factor), x * factor, decimal=7)
def test_log_decoding_Cineon(self): """ Tests :func:`colour.models.rgb.transfer_functions.cineon.\ log_decoding_Cineon` definition. """ self.assertAlmostEqual( log_decoding_Cineon(0.092864125122190), 0.0, places=7) self.assertAlmostEqual( log_decoding_Cineon(0.457319613085418), 0.18, places=7) self.assertAlmostEqual( log_decoding_Cineon(0.669599217986315), 1.0, places=7)
def test_domain_range_scale_log_decoding_Cineon(self): """ Tests :func:`colour.models.rgb.transfer_functions.cineon.\ log_decoding_Cineon` definition domain and range scale support. """ y = 0.457319613085418 x = log_decoding_Cineon(y) d_r = (('reference', 1), (1, 1), (100, 100)) for scale, factor in d_r: with domain_range_scale(scale): np.testing.assert_almost_equal(log_decoding_Cineon(y * factor), x * factor, decimal=7)
def log_decoding_REDLogFilm(y, black_offset=10**((95 - 685) / 300)): """ Defines the *REDLogFilm* log decoding curve / electro-optical transfer function. Parameters ---------- y : numeric or array_like Non-linear data :math:`y`. black_offset : numeric or array_like Black offset. Returns ------- numeric or ndarray Linear data :math:`x`. References ---------- - :cite:`SonyImageworks2012a` Examples -------- >>> log_decoding_REDLogFilm(0.457319613085418) # doctest: +ELLIPSIS 0.1799999... """ return log_decoding_Cineon(y, black_offset)
def log_decoding_REDLogFilm(y, black_offset=10 ** ((95 - 685) / 300)): """ Defines the *REDLogFilm* log decoding curve / electro-optical transfer function. Parameters ---------- y : numeric or array_like Non-linear data :math:`y`. black_offset : numeric or array_like Black offset. Returns ------- numeric or ndarray Linear data :math:`x`. Examples -------- >>> log_decoding_REDLogFilm(0.457319613085418) # doctest: +ELLIPSIS 0.1799999... """ return log_decoding_Cineon(y, black_offset)
def test_n_dimensional_log_decoding_Cineon(self): """ Tests :func:`colour.models.rgb.transfer_functions.cineon.\ log_decoding_Cineon` definition n-dimensional arrays support. """ y = 0.457319613085418 x = log_decoding_Cineon(y) y = np.tile(y, 6) x = np.tile(x, 6) np.testing.assert_almost_equal(log_decoding_Cineon(y), x, decimal=7) y = np.reshape(y, (2, 3)) x = np.reshape(x, (2, 3)) np.testing.assert_almost_equal(log_decoding_Cineon(y), x, decimal=7) y = np.reshape(y, (2, 3, 1)) x = np.reshape(x, (2, 3, 1)) np.testing.assert_almost_equal(log_decoding_Cineon(y), x, decimal=7)
def test_n_dimensional_log_decoding_Cineon(self): """ Test :func:`colour.models.rgb.transfer_functions.cineon.\ log_decoding_Cineon` definition n-dimensional arrays support. """ y = 0.457319613085418 x = log_decoding_Cineon(y) y = np.tile(y, 6) x = np.tile(x, 6) np.testing.assert_almost_equal(log_decoding_Cineon(y), x, decimal=7) y = np.reshape(y, (2, 3)) x = np.reshape(x, (2, 3)) np.testing.assert_almost_equal(log_decoding_Cineon(y), x, decimal=7) y = np.reshape(y, (2, 3, 1)) x = np.reshape(x, (2, 3, 1)) np.testing.assert_almost_equal(log_decoding_Cineon(y), x, decimal=7)
def log_decoding_REDLogFilm( y: FloatingOrArrayLike, black_offset: FloatingOrArrayLike = 10 ** ((95 - 685) / 300), ) -> FloatingOrNDArray: """ Define the *REDLogFilm* log decoding curve / electro-optical transfer function. Parameters ---------- y Non-linear data :math:`y`. black_offset Black offset. Returns ------- :class:`numpy.floating` or :class:`numpy.ndarray` Linear data :math:`x`. Notes ----- +------------+-----------------------+---------------+ | **Domain** | **Scale - Reference** | **Scale - 1** | +============+=======================+===============+ | ``y`` | [0, 1] | [0, 1] | +------------+-----------------------+---------------+ +------------+-----------------------+---------------+ | **Range** | **Scale - Reference** | **Scale - 1** | +============+=======================+===============+ | ``x`` | [0, 1] | [0, 1] | +------------+-----------------------+---------------+ References ---------- :cite:`SonyImageworks2012a` Examples -------- >>> log_decoding_REDLogFilm(0.457319613085418) # doctest: +ELLIPSIS 0.1799999... """ return log_decoding_Cineon(y, black_offset)
def log_decoding_REDLogFilm(y, black_offset=10 ** ((95 - 685) / 300)): """ Defines the *REDLogFilm* log decoding curve / electro-optical transfer function. Parameters ---------- y : numeric or array_like Non-linear data :math:`y`. black_offset : numeric or array_like Black offset. Returns ------- numeric or ndarray Linear data :math:`x`. Notes ----- +------------+-----------------------+---------------+ | **Domain** | **Scale - Reference** | **Scale - 1** | +============+=======================+===============+ | ``y`` | [0, 1] | [0, 1] | +------------+-----------------------+---------------+ +------------+-----------------------+---------------+ | **Range** | **Scale - Reference** | **Scale - 1** | +============+=======================+===============+ | ``x`` | [0, 1] | [0, 1] | +------------+-----------------------+---------------+ References ---------- :cite:`SonyImageworks2012a` Examples -------- >>> log_decoding_REDLogFilm(0.457319613085418) # doctest: +ELLIPSIS 0.1799999... """ return log_decoding_Cineon(y, black_offset)