Metadata-Version: 2.0
Name: ucs
Version: 0.3
Summary: Implements the CAM02-UCS forward transform symbolically, using Theano.
Home-page: https://github.com/crowsonkb/ucs
Author: Katherine Crowson
Author-email: crowsonkb@gmail.com
License: MIT
Download-URL: https://github.com/crowsonkb/ucs/archive/0.3.zip
Keywords: ciecam02 cam02 cam02-ucs color science
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Scientific/Engineering
Requires-Dist: Theano (>=0.9.0)
Requires-Dist: numpy (>=1.12.1)
Requires-Dist: scipy (>=0.19.0)

ucs
===

Implements the CAM02-UCS (Luo et al. (2006), "`Uniform Colour Spaces Based on CIECAM02 Colour Appearance Model <https://s3-us-west-2.amazonaws.com/4843ec7c-89cf-4d26-a36a-0e40ebc9a3a7/luo2006.pdf>`_") forward transform symbolically, using Theano.

See also: `CIECAM02 and Its Recent Developments <http://www.springer.com/cda/content/document/cda_downloaddocument/9781441961891-c1.pdf>`_.

The forward transform is symbolically differentiable in Theano and it may be approximately inverted, subject to gamut boundaries, by constrained function minimization (e.g. projected gradient descent or `L-BFGS-B <https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fmin_l_bfgs_b.html#scipy.optimize.fmin_l_bfgs_b>`_).

Package contents
----------------

- ``constants.py`` contains constants needed by CAM02-UCS and others which are merely useful.

- ``functions.py`` contains compiled Theano functions, as well as NumPy equivalents of other symbolic functions. It also contains ``ucs_to_srgb()`` and ``ucs_to_srgb_b()``, which approximately invert the CAM02-UCS forward transform with L-BFGS-B.

- ``symbolic.py`` implements the forward transform symbolically in Theano. The functions therein can be used to construct custom auto-differentiable loss functions to be subject to optimization.


