forked from colour-science/colour
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
165 lines (157 loc) · 41 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# -*- coding: utf-8 -*-
from setuptools import setup
package_dir = \
{'': '.'}
packages = \
['colour',
'colour.adaptation',
'colour.adaptation.datasets',
'colour.adaptation.tests',
'colour.algebra',
'colour.algebra.coordinates',
'colour.algebra.coordinates.tests',
'colour.algebra.tests',
'colour.appearance',
'colour.appearance.tests',
'colour.biochemistry',
'colour.biochemistry.tests',
'colour.blindness',
'colour.blindness.datasets',
'colour.blindness.tests',
'colour.characterisation',
'colour.characterisation.datasets',
'colour.characterisation.datasets.cameras',
'colour.characterisation.datasets.cameras.dslr',
'colour.characterisation.datasets.colour_checkers',
'colour.characterisation.datasets.displays',
'colour.characterisation.datasets.displays.crt',
'colour.characterisation.datasets.displays.lcd',
'colour.characterisation.tests',
'colour.colorimetry',
'colour.colorimetry.datasets',
'colour.colorimetry.datasets.illuminants',
'colour.colorimetry.datasets.light_sources',
'colour.colorimetry.tests',
'colour.constants',
'colour.continuous',
'colour.continuous.tests',
'colour.contrast',
'colour.contrast.tests',
'colour.corresponding',
'colour.corresponding.datasets',
'colour.corresponding.tests',
'colour.difference',
'colour.difference.tests',
'colour.graph',
'colour.graph.tests',
'colour.io',
'colour.io.luts',
'colour.io.luts.tests',
'colour.io.tests',
'colour.models',
'colour.models.datasets',
'colour.models.rgb',
'colour.models.rgb.datasets',
'colour.models.rgb.tests',
'colour.models.rgb.transfer_functions',
'colour.models.rgb.transfer_functions.tests',
'colour.models.tests',
'colour.notation',
'colour.notation.datasets',
'colour.notation.datasets.munsell',
'colour.notation.tests',
'colour.phenomena',
'colour.phenomena.tests',
'colour.plotting',
'colour.plotting.datasets',
'colour.plotting.tests',
'colour.quality',
'colour.quality.datasets',
'colour.quality.tests',
'colour.recovery',
'colour.recovery.datasets',
'colour.recovery.tests',
'colour.temperature',
'colour.temperature.tests',
'colour.utilities',
'colour.utilities.tests',
'colour.volume',
'colour.volume.datasets',
'colour.volume.tests']
package_data = \
{'': ['*'],
'colour': ['examples/*',
'examples/adaptation/*',
'examples/algebra/*',
'examples/appearance/*',
'examples/blindness/*',
'examples/characterisation/*',
'examples/colorimetry/*',
'examples/contrast/*',
'examples/corresponding/*',
'examples/difference/*',
'examples/graph/*',
'examples/io/*',
'examples/io/resources/*',
'examples/models/*',
'examples/notation/*',
'examples/phenomena/*',
'examples/plotting/*',
'examples/plotting/resources/*',
'examples/quality/*',
'examples/recovery/*',
'examples/temperature/*',
'examples/volume/*'],
'colour.appearance.tests': ['fixtures/*'],
'colour.io.luts.tests': ['resources/cinespace/*',
'resources/iridas_cube/*',
'resources/resolve_cube/*',
'resources/sony_spi1d/*',
'resources/sony_spi3d/*'],
'colour.io.tests': ['resources/*']}
install_requires = \
['imageio', 'scipy', 'six']
extras_require = \
{'development': ['biblib-simple',
'coverage',
'coveralls',
'flake8',
'invoke',
'jupyter',
'mock',
'nose',
'pre-commit',
'pytest',
'restructuredtext-lint',
'sphinx',
'sphinx_rtd_theme',
'sphinxcontrib-bibtex',
'toml',
'twine',
'yapf==0.23'],
'graphviz': ['pygraphviz'],
'optional': ['networkx', 'pandas'],
'plotting': ['backports.functools_lru_cache', 'matplotlib'],
'read-the-docs': ['mock',
'networkx',
'numpy',
'pygraphviz',
'sphinxcontrib-bibtex']}
setup_kwargs = {
'name': 'colour-science',
'version': '0.3.14',
'description': 'Colour Science for Python',
'long_description': '.. image:: https://raw.githubusercontent.com/colour-science/colour-branding/master/images/Colour_Logo_Medium_001.png\n\n.. start-badges\n\n|NumFOCUS| |actions| |coveralls| |codacy| |version| |zenodo|\n\n.. |NumFOCUS| image:: https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat-square&colorA=E1523D&colorB=007D8A\n :target: http://numfocus.org\n :alt: Powered by NumFOCUS\n.. |actions| image:: https://github.com/colour-science/colour/workflows/Continuous%20Integration/badge.svg\n :target: https://github.com/colour-science/colour/actions\n :alt: Develop Build Status\n.. |coveralls| image:: http://img.shields.io/coveralls/colour-science/colour/develop.svg?style=flat-square\n :target: https://coveralls.io/r/colour-science/colour\n :alt: Coverage Status\n.. |codacy| image:: https://img.shields.io/codacy/grade/7d0d61f8e7294533b27ae00ee6f50fb2/develop.svg?style=flat-square\n :target: https://www.codacy.com/app/colour-science/colour\n :alt: Code Grade\n.. |version| image:: https://img.shields.io/pypi/v/colour-science.svg?style=flat-square\n :target: https://pypi.org/project/colour-science\n :alt: Package Version\n.. |zenodo| image:: https://img.shields.io/badge/DOI-10.5281/zenodo.3519603-blue.svg?style=flat-square\n :target: https://dx.doi.org/10.5281/zenodo.3519603\n :alt: DOI\n\n.. end-badges\n\n`Colour <https://github.com/colour-science/colour>`__ is an open-source\n`Python <https://www.python.org/>`__ package providing a comprehensive number of\nalgorithms and datasets for colour science.\n\nIt is freely available under the\n`New BSD License <https://opensource.org/licenses/BSD-3-Clause>`__ terms.\n\n**Colour** is an affiliated project of `NumFOCUS <https://numfocus.org/>`__, a\n501(c)(3) nonprofit in the United States.\n\n.. contents:: **Table of Contents**\n :backlinks: none\n :depth: 3\n\n.. sectnum::\n\nDraft Release Notes\n-------------------\n\nThe draft release notes of the\n`develop <https://github.com/colour-science/colour/tree/develop>`__\nbranch are available at this\n`url <https://gist.github.com/KelSolaar/4a6ebe9ec3d389f0934b154fec8df51d>`__.\n\nFeatures\n--------\n\n**Colour** features a rich dataset and collection of objects, please see the\n`features <https://www.colour-science.org/features/>`__ page for more\ninformation.\n\nInstallation\n------------\n\n**Colour** can be easily installed from the\n`Python Package Index <https://pypi.org/project/colour-science/>`__\nby issuing this command in a shell:\n\n.. code-block:: bash\n\n $ pip install colour-science\n\n**Colour** is also available for `Anaconda <https://www.continuum.io/downloads>`__\nfrom *Continuum Analytics* via `conda-forge <https://conda-forge.org/>`__:\n\n.. code-block:: bash\n\n $ conda install -c conda-forge colour-science\n\nThe detailed installation procedure is described in the\n`Installation Guide <https://www.colour-science.org/installation-guide/>`__.\n\nDocumentation\n-------------\n\nTutorial\n~~~~~~~~\n\nThe `static tutorial <https://colour.readthedocs.io/en/develop/tutorial.html>`__\nprovides an introduction to **Colour**. An interactive version is available via\n`Google Colab <https://colab.research.google.com/notebook#fileId=1Im9J7or9qyClQCv5sPHmKdyiQbG4898K&offline=true&sandboxMode=true>`__.\n\nHow-To Guide\n~~~~~~~~~~~~\n\nThe `How-To <https://colab.research.google.com/notebook#fileId=1NRcdXSCshivkwoU2nieCvC3y14fx1X4X&offline=true&sandboxMode=true>`__\nguide for **Colour** shows various techniques to solve specific problems and\nhighlights some interesting use cases.\n\nAPI Reference\n~~~~~~~~~~~~~\n\nThe main technical reference for **Colour** and its API is the\n`Colour Manual <https://colour.readthedocs.io/en/latest/manual.html>`__.\n\nJupyter Notebooks\n~~~~~~~~~~~~~~~~~\n\n`Jupyter Notebooks <http://nbviewer.jupyter.org/github/colour-science/colour-notebooks/blob/master/notebooks/colour.ipynb>`__\nare available and designed to provide an historical perspective of colour\nscience via **Colour** usage.\n\nExamples\n~~~~~~~~\n\nMost of the objects are available from the ``colour`` namespace:\n\n.. code-block:: python\n\n >>> import colour\n\nAutomatic Colour Conversion Graph - ``colour.graph``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nStarting with version *0.3.14*, **Colour** implements an automatic colour\nconversion graph enabling easier colour conversions.\n\n.. image:: https://colour.readthedocs.io/en/develop/_images/Examples_Colour_Automatic_Conversion_Graph.png\n\n.. code-block:: python\n\n >>> sd = colour.COLOURCHECKERS_SDS[\'ColorChecker N Ohta\'][\'dark skin\']\n >>> convert(sd, \'Spectral Distribution\', \'sRGB\', verbose={\'mode\': \'Short\'})\n\n::\n\n ===============================================================================\n * *\n * [ Conversion Path ] *\n * *\n * "sd_to_XYZ" --> "XYZ_to_sRGB" *\n * *\n ===============================================================================\n array([ 0.45675795, 0.30986982, 0.24861924])\n\n.. code-block:: python\n\n >>> illuminant = colour.ILLUMINANTS_SDS[\'FL2\']\n >>> convert(sd, \'Spectral Distribution\', \'sRGB\', sd_to_XYZ={\'illuminant\': illuminant})\n array([ 0.47924575, 0.31676968, 0.17362725])\n\nChromatic Adaptation - ``colour.adaptation``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n >>> XYZ = [0.20654008, 0.12197225, 0.05136952]\n >>> D65 = colour.ILLUMINANTS[\'CIE 1931 2 Degree Standard Observer\'][\'D65\']\n >>> A = colour.ILLUMINANTS[\'CIE 1931 2 Degree Standard Observer\'][\'A\']\n >>> colour.chromatic_adaptation(\n ... XYZ, colour.xy_to_XYZ(D65), colour.xy_to_XYZ(A))\n array([ 0.2533053 , 0.13765138, 0.01543307])\n >>> sorted(colour.CHROMATIC_ADAPTATION_METHODS.keys())\n [\'CIE 1994\', \'CMCCAT2000\', \'Fairchild 1990\', \'Von Kries\']\n\nAlgebra - ``colour.algebra``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nKernel Interpolation\n********************\n\n.. code-block:: python\n\n >>> y = [5.9200, 9.3700, 10.8135, 4.5100, 69.5900, 27.8007, 86.0500]\n >>> x = range(len(y))\n >>> colour.KernelInterpolator(x, y)([0.25, 0.75, 5.50])\n array([ 6.18062083, 8.08238488, 57.85783403])\n\nSprague (1880) Interpolation\n****************************\n\n.. code-block:: python\n\n >>> y = [5.9200, 9.3700, 10.8135, 4.5100, 69.5900, 27.8007, 86.0500]\n >>> x = range(len(y))\n >>> colour.SpragueInterpolator(x, y)([0.25, 0.75, 5.50])\n array([ 6.72951612, 7.81406251, 43.77379185])\n\nColour Appearance Models - ``colour.appearance``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n >>> XYZ = [0.20654008 * 100, 0.12197225 * 100, 0.05136952 * 100]\n >>> XYZ_w = [95.05, 100.00, 108.88]\n >>> L_A = 318.31\n >>> Y_b = 20.0\n >>> colour.XYZ_to_CIECAM02(XYZ, XYZ_w, L_A, Y_b)\n CIECAM02_Specification(J=34.434525727858997, C=67.365010921125915, h=22.279164147957076, s=62.814855853327131, Q=177.47124941102123, M=70.024939419291385, H=2.689608534423904, HC=None)\n\nColour Blindness - ``colour.blindness``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n >>> import colour\n >>> cmfs = colour.LMS_CMFS[\'Stockman & Sharpe 2 Degree Cone Fundamentals\']\n >>> colour.anomalous_trichromacy_cmfs_Machado2009(cmfs, np.array([15, 0, 0]))[450]\n array([ 0.08912884, 0.0870524 , 0.955393 ])\n >>> primaries = colour.DISPLAYS_RGB_PRIMARIES[\'Apple Studio Display\']\n >>> d_LMS = (15, 0, 0)\n >>> colour.anomalous_trichromacy_matrix_Machado2009(cmfs, primaries, d_LMS)\n array([[-0.27774652, 2.65150084, -1.37375432],\n [ 0.27189369, 0.20047862, 0.52762768],\n [ 0.00644047, 0.25921579, 0.73434374]])\n\nColour Correction - ``colour characterisation``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n >>> import numpy as np\n >>> RGB = [0.17224810, 0.09170660, 0.06416938]\n >>> M_T = np.random.random((24, 3))\n >>> M_R = M_T + (np.random.random((24, 3)) - 0.5) * 0.5\n >>> colour.colour_correction(RGB, M_T, M_R)\n array([ 0.15205429, 0.08974029, 0.04141435])\n >>> sorted(colour.COLOUR_CORRECTION_METHODS.keys())\n [\'Cheung 2004\', \'Finlayson 2015\', \'Vandermonde\']\n\nColorimetry - ``colour.colorimetry``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nSpectral Computations\n*********************\n\n.. code-block:: python\n\n >>> colour.sd_to_XYZ(colour.LIGHT_SOURCES_SDS[\'Neodimium Incandescent\'])\n array([ 36.94726204, 32.62076174, 13.0143849 ])\n >>> sorted(colour.SPECTRAL_TO_XYZ_METHODS.keys())\n [\'ASTM E308\', \'Integration\', \'astm2015\']\n\n\nMulti-Spectral Computations\n***************************\n\n.. code-block:: python\n\n >>> msds = np.array([\n ... [[0.01367208, 0.09127947, 0.01524376, 0.02810712, 0.19176012, 0.04299992],\n ... [0.00959792, 0.25822842, 0.41388571, 0.22275120, 0.00407416, 0.37439537],\n ... [0.01791409, 0.29707789, 0.56295109, 0.23752193, 0.00236515, 0.58190280]],\n ... [[0.01492332, 0.10421912, 0.02240025, 0.03735409, 0.57663846, 0.32416266],\n ... [0.04180972, 0.26402685, 0.03572137, 0.00413520, 0.41808194, 0.24696727],\n ... [0.00628672, 0.11454948, 0.02198825, 0.39906919, 0.63640803, 0.01139849]],\n ... [[0.04325933, 0.26825359, 0.23732357, 0.05175860, 0.01181048, 0.08233768],\n ... [0.02484169, 0.12027161, 0.00541695, 0.00654612, 0.18603799, 0.36247808],\n ... [0.03102159, 0.16815442, 0.37186235, 0.08610666, 0.00413520, 0.78492409]],\n ... [[0.11682307, 0.78883040, 0.74468607, 0.83375293, 0.90571451, 0.70054168],\n ... [0.06321812, 0.41898224, 0.15190357, 0.24591440, 0.55301750, 0.00657664],\n ... [0.00305180, 0.11288624, 0.11357290, 0.12924391, 0.00195315, 0.21771573]],\n ... ])\n >>> colour.multi_sds_to_XYZ(msds, cmfs, illuminant, method=\'Integration\',\n ... shape=colour.SpectralShape(400, 700, 60)))\n [[[ 9.73192501 5.02105851 3.22790699]\n [ 16.08032168 24.47303359 10.28681006]\n [ 17.73513774 29.61865582 12.10713449]]\n [[ 25.69298792 11.72611193 3.70187275]\n [ 18.51208526 8.03720984 9.30361825]\n [ 48.55945054 32.30885571 4.09223401]]\n [[ 5.7743232 10.10692925 10.08461311]\n [ 8.81306527 3.65394599 4.20783881]\n [ 8.06007398 15.87077693 7.02551086]]\n [[ 90.88877129 81.82966846 29.86765971]\n [ 38.64801062 26.70860262 15.08396538]\n [ 8.77151115 10.56330761 4.28940206]]]\n >>> sorted(colour.MULTI_SPECTRAL_TO_XYZ_METHODS.keys())\n [\'ASTM E308\', \'Integration\', \'astm2015\']\n\nBlackbody Spectral Radiance Computation\n***************************************\n\n.. code-block:: python\n\n >>> colour.sd_blackbody(5000)\n SpectralDistribution([[ 3.60000000e+02, 6.65427827e+12],\n [ 3.61000000e+02, 6.70960528e+12],\n [ 3.62000000e+02, 6.76482512e+12],\n ...\n [ 7.78000000e+02, 1.06068004e+13],\n [ 7.79000000e+02, 1.05903327e+13],\n [ 7.80000000e+02, 1.05738520e+13]],\n interpolator=SpragueInterpolator,\n interpolator_args={},\n extrapolator=Extrapolator,\n extrapolator_args={\'right\': None, \'method\': \'Constant\', \'left\': None})\n\nDominant, Complementary Wavelength & Colour Purity Computation\n**************************************************************\n\n.. code-block:: python\n\n >>> xy = [0.54369557, 0.32107944]\n >>> xy_n = [0.31270000, 0.32900000]\n >>> colour.dominant_wavelength(xy, xy_n)\n (array(616.0),\n array([ 0.68354746, 0.31628409]),\n array([ 0.68354746, 0.31628409]))\n\nLightness Computation\n*********************\n\n.. code-block:: python\n\n >>> colour.lightness(12.19722535)\n 41.527875844653451\n >>> sorted(colour.LIGHTNESS_METHODS.keys())\n [\'CIE 1976\',\n \'Fairchild 2010\',\n \'Fairchild 2011\',\n \'Glasser 1958\',\n \'Lstar1976\',\n \'Wyszecki 1963\']\n\nLuminance Computation\n*********************\n\n.. code-block:: python\n\n >>> colour.luminance(41.52787585)\n 12.197225353400775\n >>> sorted(colour.LUMINANCE_METHODS.keys())\n [\'ASTM D1535\',\n \'CIE 1976\',\n \'Fairchild 2010\',\n \'Fairchild 2011\',\n \'Newhall 1943\',\n \'astm2008\',\n \'cie1976\']\n\nWhiteness Computation\n*********************\n\n.. code-block:: python\n\n >>> XYZ = [95.00000000, 100.00000000, 105.00000000]\n >>> XYZ_0 = [94.80966767, 100.00000000, 107.30513595]\n >>> colour.whiteness(XYZ, XYZ_0)\n array([ 93.756 , -1.33000001])\n >>> sorted(colour.WHITENESS_METHODS.keys())\n [\'ASTM E313\',\n \'Berger 1959\',\n \'CIE 2004\',\n \'Ganz 1979\',\n \'Stensby 1968\',\n \'Taube 1960\',\n \'cie2004\']\n\nYellowness Computation\n**********************\n\n.. code-block:: python\n\n >>> XYZ = [95.00000000, 100.00000000, 105.00000000]\n >>> colour.yellowness(XYZ)\n 11.065000000000003\n >>> sorted(colour.YELLOWNESS_METHODS.keys())\n [\'ASTM D1925\', \'ASTM E313\']\n\nLuminous Flux, Efficiency & Efficacy Computation\n************************************************\n\n.. code-block:: python\n\n >>> sd = colour.LIGHT_SOURCES_SDS[\'Neodimium Incandescent\']\n >>> colour.luminous_flux(sd)\n 23807.655527367202\n >>> sd = colour.LIGHT_SOURCES_SDS[\'Neodimium Incandescent\']\n >>> colour.luminous_efficiency(sd)\n 0.19943935624521045\n >>> sd = colour.LIGHT_SOURCES_SDS[\'Neodimium Incandescent\']\n >>> colour.luminous_efficacy(sd)\n 136.21708031547874\n\nContrast Sensitivity Function - ``colour.contrast``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n >>> colour.contrast_sensitivity_function(u=4, X_0=60, E=65)\n 358.51180789884984\n >>> sorted(colour.CONTRAST_SENSITIVITY_METHODS.keys())\n [\'Barten 1999\']\n\n\nColour Difference - ``colour.difference``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n >>> Lab_1 = [100.00000000, 21.57210357, 272.22819350]\n >>> Lab_2 = [100.00000000, 426.67945353, 72.39590835]\n >>> colour.delta_E(Lab_1, Lab_2)\n 94.035649026659485\n >>> sorted(colour.DELTA_E_METHODS.keys())\n [\'CAM02-LCD\',\n \'CAM02-SCD\',\n \'CAM02-UCS\',\n \'CAM16-LCD\',\n \'CAM16-SCD\',\n \'CAM16-UCS\',\n \'CIE 1976\',\n \'CIE 1994\',\n \'CIE 2000\',\n \'CMC\',\n \'DIN99\',\n \'cie1976\',\n \'cie1994\',\n \'cie2000\']\n\nIO - ``colour.io``\n^^^^^^^^^^^^^^^^^^\n\nImages\n******\n\n.. code-block:: python\n\n >>> RGB = colour.read_image(\'Ishihara_Colour_Blindness_Test_Plate_3.png\')\n >>> RGB.shape\n (276, 281, 3)\n\nLook Up Table (LUT) Data\n************************\n\n.. code-block:: python\n\n >>> LUT = colour.read_LUT(\'ACES_Proxy_10_to_ACES.cube\')\n >>> print(LUT)\n\n::\n\n LUT3x1D - ACES Proxy 10 to ACES\n -------------------------------\n Dimensions : 2\n Domain : [[0 0 0]\n [1 1 1]]\n Size : (32, 3)\n\n.. code-block:: python\n\n >>> RGB = [0.17224810, 0.09170660, 0.06416938]\n >>> LUT.apply(RGB)\n array([ 0.00575674, 0.00181493, 0.00121419])\n\nColour Models - ``colour.models``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nCIE xyY Colourspace\n*******************\n\n.. code-block:: python\n\n >>> colour.XYZ_to_xyY([0.20654008, 0.12197225, 0.05136952])\n array([ 0.54369557, 0.32107944, 0.12197225])\n\nCIE L*a*b* Colourspace\n**********************\n\n.. code-block:: python\n\n >>> colour.XYZ_to_Lab([0.20654008, 0.12197225, 0.05136952])\n array([ 41.52787529, 52.63858304, 26.92317922])\n\nCIE L*u*v* Colourspace\n**********************\n\n.. code-block:: python\n\n >>> colour.XYZ_to_Luv([0.20654008, 0.12197225, 0.05136952])\n array([ 41.52787529, 96.83626054, 17.75210149])\n\nCIE 1960 UCS Colourspace\n************************\n\n.. code-block:: python\n\n >>> colour.XYZ_to_UCS([0.20654008, 0.12197225, 0.05136952])\n array([ 0.13769339, 0.12197225, 0.1053731 ])\n\nCIE 1964 U*V*W* Colourspace\n***************************\n\n.. code-block:: python\n\n >>> XYZ = [0.20654008 * 100, 0.12197225 * 100, 0.05136952* 100]\n >>> colour.XYZ_to_UVW(XYZ)\n array([ 94.55035725, 11.55536523, 40.54757405])\n\nHunter L,a,b Colour Scale\n*************************\n\n.. code-block:: python\n\n >>> XYZ = [0.20654008 * 100, 0.12197225 * 100, 0.05136952* 100]\n >>> colour.XYZ_to_Hunter_Lab(XYZ)\n array([ 34.92452577, 47.06189858, 14.38615107])\n\nHunter Rd,a,b Colour Scale\n**************************\n\n.. code-block:: python\n\n >>> XYZ = [0.20654008 * 100, 0.12197225 * 100, 0.05136952* 100]\n >>> colour.XYZ_to_Hunter_Rdab(XYZ)\n array([ 12.197225 , 57.12537874, 17.46241341])\n\nCAM02-LCD, CAM02-SCD, and CAM02-UCS Colourspaces - Luo, Cui and Li (2006)\n*************************************************************************\n\n.. code-block:: python\n\n >>> XYZ = [0.20654008 * 100, 0.12197225 * 100, 0.05136952* 100]\n >>> XYZ_w = [95.05, 100.00, 108.88]\n >>> L_A = 318.31\n >>> Y_b = 20.0\n >>> surround = colour.CIECAM02_VIEWING_CONDITIONS[\'Average\']\n >>> specification = colour.XYZ_to_CIECAM02(\n XYZ, XYZ_w, L_A, Y_b, surround)\n >>> JMh = (specification.J, specification.M, specification.h)\n >>> colour.JMh_CIECAM02_to_CAM02UCS(JMh)\n array([ 47.16899898, 38.72623785, 15.8663383 ])\n\nCAM16-LCD, CAM16-SCD, and CAM16-UCS Colourspaces - Li et al. (2017)\n*******************************************************************\n\n.. code-block:: python\n\n >>> XYZ = [0.20654008 * 100, 0.12197225 * 100, 0.05136952* 100]\n >>> XYZ_w = [95.05, 100.00, 108.88]\n >>> L_A = 318.31\n >>> Y_b = 20.0\n >>> surround = colour.CAM16_VIEWING_CONDITIONS[\'Average\']\n >>> specification = colour.XYZ_to_CAM16(\n XYZ, XYZ_w, L_A, Y_b, surround)\n >>> JMh = (specification.J, specification.M, specification.h)\n >>> colour.JMh_CAM16_to_CAM16UCS(JMh)\n array([ 46.55542238, 40.22460974, 14.25288392]\n\nIPT Colourspace\n***************\n\n.. code-block:: python\n\n >>> colour.XYZ_to_IPT([0.20654008, 0.12197225, 0.05136952])\n array([ 0.38426191, 0.38487306, 0.18886838])\n\nDIN99 Colourspace\n*****************\n\n.. code-block:: python\n\n >>> Lab = [41.52787529, 52.63858304, 26.92317922]\n >>> colour.Lab_to_DIN99(Lab)\n array([ 53.22821988, 28.41634656, 3.89839552])\n\nhdr-CIELAB Colourspace\n**********************\n\n.. code-block:: python\n\n >>> colour.XYZ_to_hdr_CIELab([0.20654008, 0.12197225, 0.05136952])\n array([ 51.87002062, 60.4763385 , 32.14551912])\n\nhdr-IPT Colourspace\n*******************\n\n.. code-block:: python\n\n >>> colour.XYZ_to_hdr_IPT([0.20654008, 0.12197225, 0.05136952])\n array([ 25.18261761, -22.62111297, 3.18511729])\n\nOSA UCS Colourspace\n*******************\n\n.. code-block:: python\n\n >>> XYZ = [0.20654008 * 100, 0.12197225 * 100, 0.05136952* 100]\n >>> colour.XYZ_to_OSA_UCS(XYZ)\n array([-3.0049979 , 2.99713697, -9.66784231])\n\nJzAzBz Colourspace\n******************\n\n.. code-block:: python\n\n >>> colour.XYZ_to_JzAzBz([0.20654008, 0.12197225, 0.05136952])\n array([ 0.00535048, 0.00924302, 0.00526007])\n\nY\'CbCr Colour Encoding\n**********************\n\n.. code-block:: python\n\n >>> colour.RGB_to_YCbCr([1.0, 1.0, 1.0])\n array([ 0.92156863, 0.50196078, 0.50196078])\n\nYCoCg Colour Encoding\n*********************\n\n.. code-block:: python\n\n >>> colour.RGB_to_YCoCg([0.75, 0.75, 0.0])\n array([ 0.5625, 0.375 , 0.1875])\n\nICTCP Colour Encoding\n*********************\n\n.. code-block:: python\n\n >>> colour.RGB_to_ICTCP([0.45620519, 0.03081071, 0.04091952])\n array([ 0.07351364, 0.00475253, 0.09351596])\n\nHSV Colourspace\n***************\n\n.. code-block:: python\n\n >>> colour.RGB_to_HSV([0.45620519, 0.03081071, 0.04091952])\n array([ 0.99603944, 0.93246304, 0.45620519])\n\nPrismatic Colourspace\n*********************\n\n.. code-block:: python\n\n >>> colour.RGB_to_Prismatic([0.25, 0.50, 0.75])\n array([ 0.75 , 0.16666667, 0.33333333, 0.5 ])\n\nRGB Colourspace and Transformations\n***********************************\n\n.. code-block:: python\n\n >>> XYZ = [0.21638819, 0.12570000, 0.03847493]\n >>> illuminant_XYZ = [0.34570, 0.35850]\n >>> illuminant_RGB = [0.31270, 0.32900]\n >>> chromatic_adaptation_transform = \'Bradford\'\n >>> XYZ_to_RGB_matrix = [\n [3.24062548, -1.53720797, -0.49862860],\n [-0.96893071, 1.87575606, 0.04151752],\n [0.05571012, -0.20402105, 1.05699594]]\n >>> colour.XYZ_to_RGB(\n XYZ,\n illuminant_XYZ,\n illuminant_RGB,\n XYZ_to_RGB_matrix,\n chromatic_adaptation_transform)\n array([ 0.45595571, 0.03039702, 0.04087245])\n\nRGB Colourspace Derivation\n**************************\n\n.. code-block:: python\n\n >>> p = [0.73470, 0.26530, 0.00000, 1.00000, 0.00010, -0.07700]\n >>> w = [0.32168, 0.33767]\n >>> colour.normalised_primary_matrix(p, w)\n array([[ 9.52552396e-01, 0.00000000e+00, 9.36786317e-05],\n [ 3.43966450e-01, 7.28166097e-01, -7.21325464e-02],\n [ 0.00000000e+00, 0.00000000e+00, 1.00882518e+00]])\n\nRGB Colourspaces\n****************\n\n.. code-block:: python\n\n >>> sorted(colour.RGB_COLOURSPACES.keys())\n [\'ACES2065-1\',\n \'ACEScc\',\n \'ACEScct\',\n \'ACEScg\',\n \'ACESproxy\',\n \'ALEXA Wide Gamut\',\n \'Adobe RGB (1998)\',\n \'Adobe Wide Gamut RGB\',\n \'Apple RGB\',\n \'Best RGB\',\n \'Beta RGB\',\n \'CIE RGB\',\n \'Cinema Gamut\',\n \'ColorMatch RGB\',\n \'DCDM XYZ\',\n \'DCI-P3\',\n \'DCI-P3+\',\n \'DJI D-Gamut\',\n \'DRAGONcolor\',\n \'DRAGONcolor2\',\n \'Don RGB 4\',\n \'ECI RGB v2\',\n \'ERIMM RGB\',\n \'Ekta Space PS 5\',\n \'F-Gamut\',\n \'FilmLight E-Gamut\',\n \'ITU-R BT.2020\',\n \'ITU-R BT.470 - 525\',\n \'ITU-R BT.470 - 625\',\n \'ITU-R BT.709\',\n \'Max RGB\',\n \'NTSC (1953)\',\n \'NTSC (1987)\',\n \'P3-D65\',\n \'Pal/Secam\',\n \'ProPhoto RGB\',\n \'Protune Native\',\n \'REDWideGamutRGB\',\n \'REDcolor\',\n \'REDcolor2\',\n \'REDcolor3\',\n \'REDcolor4\',\n \'RIMM RGB\',\n \'ROMM RGB\',\n \'Russell RGB\',\n \'S-Gamut\',\n \'S-Gamut3\',\n \'S-Gamut3.Cine\',\n \'SMPTE 240M\',\n \'SMPTE C\',\n \'Sharp RGB\',\n \'V-Gamut\',\n \'Xtreme RGB\',\n \'aces\',\n \'adobe1998\',\n \'prophoto\',\n \'sRGB\']\n\nOETFs\n*****\n\n.. code-block:: python\n\n >>> sorted(colour.OETFS.keys())\n [\'ARIB STD-B67\',\n \'ITU-R BT.2020\',\n \'ITU-R BT.2100 HLG\',\n \'ITU-R BT.2100 PQ\',\n \'ITU-R BT.601\',\n \'ITU-R BT.709\',\n \'SMPTE 240M\']\n\nOETFs Inverse\n*************\n\n.. code-block:: python\n\n >>> sorted(colour.OETF_INVERSES.keys())\n [\'ARIB STD-B67\',\n \'ITU-R BT.2100 HLD\',\n \'ITU-R BT.2100 PQ\',\n \'ITU-R BT.601\',\n \'ITU-R BT.709\']\n\nEOTFs\n*****\n\n.. code-block:: python\n\n >>> sorted(colour.EOTFS.keys())\n [\'DCDM\',\n \'DICOM GSDF\',\n \'ITU-R BT.1886\',\n \'ITU-R BT.2020\',\n \'ITU-R BT.2100 HLG\',\n \'ITU-R BT.2100 PQ\',\n \'SMPTE 240M\',\n \'ST 2084\',\n \'sRGB\']\n\nEOTFs Inverse\n*************\n\n.. code-block:: python\n\n >>> sorted(colour.EOTF_INVERSES.keys())\n [\'DCDM\',\n \'DICOM GSDF\',\n \'ITU-R BT.1886\',\n \'ITU-R BT.2100 HLG\',\n \'ITU-R BT.2100 PQ\',\n \'ST 2084\',\n \'sRGB\']\n\nOOTFs\n*****\n\n.. code-block:: python\n\n >>> sorted(colour.OOTFS.keys())\n [\'ITU-R BT.2100 HLG\', \'ITU-R BT.2100 PQ\']\n\nOOTFs Inverse\n*************\n\n.. code-block:: python\n\n >>> sorted(colour.OOTF_INVERSES.keys())\n [\'ITU-R BT.2100 HLG\', \'ITU-R BT.2100 PQ\']\n\nLog Encoding / Decoding\n***********************\n\n.. code-block:: python\n\n >>> sorted(colour.LOG_ENCODINGS.keys())\n [\'ACEScc\',\n \'ACEScct\',\n \'ACESproxy\',\n \'ALEXA Log C\',\n \'Canon Log\',\n \'Canon Log 2\',\n \'Canon Log 3\',\n \'Cineon\',\n \'D-Log\',\n \'ERIMM RGB\',\n \'F-Log\',\n \'Filmic Pro 6\',\n \'Log3G10\',\n \'Log3G12\',\n \'PLog\',\n \'Panalog\',\n \'Protune\',\n \'REDLog\',\n \'REDLogFilm\',\n \'S-Log\',\n \'S-Log2\',\n \'S-Log3\',\n \'T-Log\',\n \'V-Log\',\n \'ViperLog\']\n\nCCTFs Encoding / Decoding\n*************************\n\n.. code-block:: python\n\n >>> sorted(colour.CCTF_ENCODINGS.keys())\n [\'ACEScc\',\n \'ACEScct\',\n \'ACESproxy\',\n \'ALEXA Log C\',\n \'ARIB STD-B67\',\n \'Canon Log\',\n \'Canon Log 2\',\n \'Canon Log 3\',\n \'Cineon\',\n \'D-Log\',\n \'DCDM\',\n \'DICOM GSDF\',\n \'ERIMM RGB\',\n \'F-Log\',\n \'Filmic Pro 6\',\n \'Gamma 2.2\',\n \'Gamma 2.4\',\n \'Gamma 2.6\',\n \'ITU-R BT.1886\',\n \'ITU-R BT.2020\',\n \'ITU-R BT.2100 HLG\',\n \'ITU-R BT.2100 PQ\',\n \'ITU-R BT.601\',\n \'ITU-R BT.709\',\n \'Log3G10\',\n \'Log3G12\',\n \'PLog\',\n \'Panalog\',\n \'ProPhoto RGB\',\n \'Protune\',\n \'REDLog\',\n \'REDLogFilm\',\n \'RIMM RGB\',\n \'ROMM RGB\',\n \'S-Log\',\n \'S-Log2\',\n \'S-Log3\',\n \'SMPTE 240M\',\n \'ST 2084\',\n \'T-Log\',\n \'V-Log\',\n \'ViperLog\',\n \'sRGB\']\n\nColour Notation Systems - ``colour.notation``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nMunsell Value\n*************\n\n.. code-block:: python\n\n >>> colour.munsell_value(12.23634268)\n 4.0824437076525664\n >>> sorted(colour.MUNSELL_VALUE_METHODS.keys())\n [\'ASTM D1535\',\n \'Ladd 1955\',\n \'McCamy 1987\',\n \'Moon 1943\',\n \'Munsell 1933\',\n \'Priest 1920\',\n \'Saunderson 1944\',\n \'astm2008\']\n\nMunsell Colour\n**************\n\n.. code-block:: python\n\n >>> colour.xyY_to_munsell_colour([0.38736945, 0.35751656, 0.59362000])\n \'4.2YR 8.1/5.3\'\n >>> colour.munsell_colour_to_xyY(\'4.2YR 8.1/5.3\')\n array([ 0.38736945, 0.35751656, 0.59362 ])\n\nOptical Phenomena - ``colour.phenomena``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n >>> colour.rayleigh_scattering_sd()\n SpectralDistribution([[ 3.60000000e+02, 5.99101337e-01],\n [ 3.61000000e+02, 5.92170690e-01],\n [ 3.62000000e+02, 5.85341006e-01],\n ...\n [ 7.78000000e+02, 2.55208377e-02],\n [ 7.79000000e+02, 2.53887969e-02],\n [ 7.80000000e+02, 2.52576106e-02]],\n interpolator=SpragueInterpolator,\n interpolator_args={},\n extrapolator=Extrapolator,\n extrapolator_args={\'right\': None, \'method\': \'Constant\', \'left\': None})\n\nLight Quality - ``colour.quality``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nColour Rendering Index\n**********************\n\n.. code-block:: python\n\n >>> colour.colour_quality_scale(colour.ILLUMINANTS_SDS[\'FL2\'])\n 64.017283509280588\n >>> colour.COLOUR_QUALITY_SCALE_METHODS\n (\'NIST CQS 7.4\', \'NIST CQS 9.0\')\n\nColour Quality Scale\n********************\n\n.. code-block:: python\n\n >>> colour.colour_rendering_index(colour.ILLUMINANTS_SDS[\'FL2\'])\n 64.151520202968015\n\nSpectral Up-sampling & Reflectance Recovery - ``colour.recovery``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n >>> colour.XYZ_to_sd([0.20654008, 0.12197225, 0.05136952])\n SpectralDistribution([[ 3.60000000e+02, 7.73462151e-02],\n [ 3.65000000e+02, 7.73632975e-02],\n [ 3.70000000e+02, 7.74299705e-02],\n ...\n [ 8.20000000e+02, 3.93126353e-01],\n [ 8.25000000e+02, 3.93158148e-01],\n [ 8.30000000e+02, 3.93163548e-01]],\n interpolator=SpragueInterpolator,\n interpolator_args={},\n extrapolator=Extrapolator,\n extrapolator_args={\'right\': None, \'method\': \'Constant\', \'left\': None})\n\n >>> sorted(colour.REFLECTANCE_RECOVERY_METHODS.keys())\n [\'Meng 2015\', \'Smits 1999\']\n\nCorrelated Colour Temperature Computation Methods - ``colour.temperature``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n >>> colour.uv_to_CCT([0.1978, 0.3122])\n array([ 6.50751282e+03, 3.22335875e-03])\n >>> sorted(colour.UV_TO_CCT_METHODS.keys())\n [\'Krystek 1985\', \'Ohno 2013\', \'Robertson 1968\', \'ohno2013\', \'robertson1968\']\n >>> sorted(colour.XY_TO_CCT_METHODS.keys())\n [\'CIE Illuminant D Series\', \'Hernandez 1999\', \'Kang 2002\', \'McCamy 1992\', \'daylight\', \'hernandez1999\', \'kang2002\', \'mccamy1992\']\n\nColour Volume - ``colour.volume``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n >>> colour.RGB_colourspace_volume_MonteCarlo(colour.RGB_COLOURSPACE[\'sRGB\'])\n 821958.30000000005\n\nPlotting - ``colour.plotting``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nMost of the objects are available from the ``colour.plotting`` namespace:\n\n.. code-block:: python\n\n >>> from colour.plotting import *\n >>> colour_style()\n\nVisible Spectrum\n****************\n\n.. code-block:: python\n\n >>> plot_visible_spectrum(\'CIE 1931 2 Degree Standard Observer\')\n\n.. image:: https://colour.readthedocs.io/en/develop/_images/Examples_Plotting_Visible_Spectrum.png\n\nSpectral Distribution\n*********************\n\n.. code-block:: python\n\n >>> plot_single_illuminant_sd(\'FL1\')\n\n.. image:: https://colour.readthedocs.io/en/develop/_images/Examples_Plotting_Illuminant_F1_SD.png\n\nBlackbody\n*********\n\n.. code-block:: python\n\n >>> blackbody_sds = [\n ... colour.sd_blackbody(i, colour.SpectralShape(0, 10000, 10))\n ... for i in range(1000, 15000, 1000)\n ... ]\n >>> plot_multi_sds(\n ... blackbody_sds,\n ... y_label=\'W / (sr m$^2$) / m\',\n ... use_sds_colours=True,\n ... normalise_sds_colours=True,\n ... legend_location=\'upper right\',\n ... bounding_box=(0, 1250, 0, 2.5e15))\n\n.. image:: https://colour.readthedocs.io/en/develop/_images/Examples_Plotting_Blackbodies.png\n\nColour Matching Functions\n*************************\n\n.. code-block:: python\n\n >>> plot_single_cmfs(\n ... \'Stockman & Sharpe 2 Degree Cone Fundamentals\',\n ... y_label=\'Sensitivity\',\n ... bounding_box=(390, 870, 0, 1.1))\n\n.. image:: https://colour.readthedocs.io/en/develop/_images/Examples_Plotting_Cone_Fundamentals.png\n\nLuminous Efficiency\n*******************\n\n.. code-block:: python\n\n >>> sd_mesopic_luminous_efficiency_function = (\n ... colour.sd_mesopic_luminous_efficiency_function(0.2))\n >>> plot_multi_sds(\n ... (sd_mesopic_luminous_efficiency_function,\n ... colour.PHOTOPIC_LEFS[\'CIE 1924 Photopic Standard Observer\'],\n ... colour.SCOTOPIC_LEFS[\'CIE 1951 Scotopic Standard Observer\']),\n ... y_label=\'Luminous Efficiency\',\n ... legend_location=\'upper right\',\n ... y_tighten=True,\n ... margins=(0, 0, 0, .1))\n\n.. image:: https://colour.readthedocs.io/en/develop/_images/Examples_Plotting_Luminous_Efficiency.png\n\nColour Checker\n**************\n\n.. code-block:: python\n\n >>> from colour.characterisation.dataset.colour_checkers.sds import (\n ... COLOURCHECKER_INDEXES_TO_NAMES_MAPPING)\n >>> plot_multi_sds(\n ... [\n ... colour.COLOURCHECKERS_SDS[\'BabelColor Average\'][value]\n ... for key, value in sorted(\n ... COLOURCHECKER_INDEXES_TO_NAMES_MAPPING.items())\n ... ],\n ... use_sds_colours=True,\n ... title=(\'BabelColor Average - \'\n ... \'Spectral Distributions\'))\n\n.. image:: https://colour.readthedocs.io/en/develop/_images/Examples_Plotting_BabelColor_Average.png\n\n.. code-block:: python\n\n >>> plot_single_colour_checker(\'ColorChecker 2005\', text_parameters={\'visible\': False})\n\n.. image:: https://colour.readthedocs.io/en/develop/_images/Examples_Plotting_ColorChecker_2005.png\n\nChromaticities Prediction\n*************************\n\n.. code-block:: python\n\n >>> plot_corresponding_chromaticities_prediction(2, \'Von Kries\', \'Bianco\')\n\n.. image:: https://colour.readthedocs.io/en/develop/_images/Examples_Plotting_Chromaticities_Prediction.png\n\nColour Temperature\n******************\n\n.. code-block:: python\n\n >>> plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS([\'A\', \'B\', \'C\'])\n\n.. image:: https://colour.readthedocs.io/en/develop/_images/Examples_Plotting_CCT_CIE_1960_UCS_Chromaticity_Diagram.png\n\n\nChromaticities\n**************\n\n.. code-block:: python\n\n >>> import numpy as np\n >>> RGB = np.random.random((32, 32, 3))\n >>> plot_RGB_chromaticities_in_chromaticity_diagram_CIE1931(\n ... RGB, \'ITU-R BT.709\', colourspaces=[\'ACEScg\', \'S-Gamut\', \'Pointer Gamut\'])\n\n.. image:: https://colour.readthedocs.io/en/develop/_images/Examples_Plotting_Chromaticities_CIE_1931_Chromaticity_Diagram.png\n\nColour Rendering Index\n**********************\n\n.. code-block:: python\n\n >>> plot_single_sd_colour_rendering_index_bars(\n ... colour.ILLUMINANTS_SDS[\'FL2\'])\n\n.. image:: https://colour.readthedocs.io/en/develop/_images/Examples_Plotting_CRI.png\n\nContributing\n------------\n\nIf you would like to contribute to **Colour**, please refer to the following\n`Contributing <https://www.colour-science.org/contributing/>`__ guide.\n\nChanges\n-------\n\nThe changes are viewable on the `Releases <https://github.com/colour-science/colour/releases>`__ page.\n\nBibliography\n------------\n\nThe bibliography is available on the `Bibliography <https://www.colour-science.org/bibliography/>`__ page.\n\nIt is also viewable directly from the repository in\n`BibTeX <https://github.com/colour-science/colour/blob/develop/BIBLIOGRAPHY.bib>`__\nformat.\n\nSee Also\n--------\n\nHere is a list of notable colour science packages sorted by languages:\n\n**Python**\n\n- `Colorio <https://github.com/nschloe/colorio/>`__ by Schlömer, N.\n- `ColorPy <http://markkness.net/colorpy/ColorPy.html>`__ by Kness, M.\n- `Colorspacious <https://colorspacious.readthedocs.io/>`__ by Smith, N. J., et al.\n- `python-colormath <https://python-colormath.readthedocs.io/>`__ by Taylor, G., et al.\n\n**Go**\n\n- `go-colorful <https://github.com/lucasb-eyer/go-colorful/>`__ by Beyer, L., et al.\n\n**.NET**\n\n- `Colourful <https://github.com/tompazourek/Colourful>`__ by Pažourek, T., et al.\n\n**Julia**\n\n- `Colors.jl <https://github.com/JuliaGraphics/Colors.jl>`__ by Holy, T., et al.\n\n**Matlab & Octave**\n\n- `COLORLAB <https://www.uv.es/vista/vistavalencia/software/colorlab.html>`__ by Malo, J., et al.\n- `Psychtoolbox <http://psychtoolbox.org/>`__ by Brainard, D., et al.\n- `The Munsell and Kubelka-Munk Toolbox <http://www.munsellcolourscienceforpainters.com/MunsellAndKubelkaMunkToolbox/MunsellAndKubelkaMunkToolbox.html>`__ by Centore, P.\n\nCode of Conduct\n---------------\n\nThe *Code of Conduct*, adapted from the `Contributor Covenant 1.4 <https://www.contributor-covenant.org/version/1/4/code-of-conduct.html>`__,\nis available on the `Code of Conduct <https://www.colour-science.org/code-of-conduct/>`__ page.\n\nAbout\n-----\n\n| **Colour** by Colour Developers - 2013-2019\n| Copyright © 2013-2019 – Colour Developers – `[email protected] <[email protected]>`__\n| This software is released under terms of New BSD License: https://opensource.org/licenses/BSD-3-Clause\n| `https://github.com/colour-science/colour <https://github.com/colour-science/colour>`__\n',
'author': 'Colour Developers',
'author_email': None,
'maintainer': None,
'maintainer_email': None,
'url': 'https://www.colour-science.org/',
'package_dir': package_dir,
'packages': packages,
'package_data': package_data,
'install_requires': install_requires,
'extras_require': extras_require,
'python_requires': '>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*',
}
setup(**setup_kwargs)