Ejemplo n.º 1
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases colour temperature and correlated colour temperature plotting
examples.
"""

from colour.plotting import *  # noqa
from colour.utilities.verbose import message_box

message_box('Colour Temperature and Correlated Colour Temperature Plots')

colour_plotting_defaults()

message_box('Plotting planckian locus in "CIE 1931 Chromaticity Diagram".')
planckian_locus_CIE_1931_chromaticity_diagram_plot(['A', 'B', 'C'])

print('\n')

message_box('Plotting planckian locus in "CIE 1960 UCS Chromaticity Diagram".')
planckian_locus_CIE_1960_UCS_chromaticity_diagram_plot(['A', 'B', 'C'])
Ejemplo n.º 2
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases correlated colour temperature computations.
"""

import colour
from colour.utilities.verbose import message_box

message_box('Correlated Colour Temperature Computations')

cmfs = colour.CMFS['CIE 1931 2 Degree Standard Observer']
illuminant = colour.ILLUMINANTS_RELATIVE_SPDS['D65']
xy = colour.XYZ_to_xy(colour.spectral_to_XYZ(illuminant, cmfs))
uv = colour.UCS_to_uv(colour.XYZ_to_UCS(colour.xy_to_XYZ(xy)))
message_box(('Converting to "CCT" and "Duv" from given "CIE UCS" colourspace '
             '"uv" chromaticity coordinates using "Yoshi Ohno (2013)" '
             'method:\n'
             '\n\t{0}'.format(uv)))
print(colour.uv_to_CCT_ohno2013(uv, cmfs=cmfs))
print(colour.uv_to_CCT(uv, cmfs=cmfs))

print('\n')

message_box('Faster computation with 3 iterations but a lot less precise.')
print(colour.uv_to_CCT_ohno2013(uv, cmfs=cmfs, iterations=3))

print('\n')

message_box(('Converting to "CCT" and "Duv" from given "CIE UCS" colourspace '
Ejemplo n.º 3
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases CIE 1994 chromatic adaptation model computations.
"""

from __future__ import division, unicode_literals

import colour
from colour.utilities.verbose import message_box

message_box('CIE 1994 Chromatic Adaptation Model Computations')

XYZ_1 = (28.00, 21.26, 5.27)
xy_o1 = (0.4476, 0.4074)
xy_o2 = (0.3127, 0.3290)
Y_o = 20
E_o1 = 1000
E_o2 = 1000
message_box(('Computing chromatic adaptation using CIE 1994 chromatic '
             'adaptation model.\n'
             '\n\t"XYZ_1":\n\t\t{0}\n\t"xy_o1":\n\t\t{1}\n\t"xy_o2":\n\t\t{2}'
             '\n\t"Y_o":\n\t\t{3}\n\t"E_o1":\n\t\t{4}'
             '\n\t"E_o2":\n\t\t{5}'.format(XYZ_1,
                                           xy_o1,
                                           xy_o2,
                                           Y_o,
                                           E_o1,
                                           E_o2)))
print(colour.chromatic_adaptation_CIE1994(
Ejemplo n.º 4
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases optical phenomenons plotting examples.
"""

from colour.phenomenons import rayleigh_scattering_spd
from colour.plotting import *  # noqa
from colour.utilities.verbose import message_box

message_box('Optical Phenomenons Plots')

message_box(('Plotting a single "Rayleigh Scattering" spectral power '
             'distribution.'))
single_rayleigh_scattering_spd_plot()

print('\n')

message_box(('Comparing multiple "Rayleigh Scattering" spectral power '
             'distributions with different CO_2 concentrations.'))
name_template = 'Rayleigh Scattering - CO2: {0} ppm'
rayleigh_spds = []
for ppm in (0, 50, 300):
    rayleigh_spd = rayleigh_scattering_spd(CO2_concentration=ppm)
    rayleigh_spd.name = name_template.format(ppm)
    rayleigh_spds.append(rayleigh_spd)
multi_spd_plot(rayleigh_spds,
               title=('Rayleigh Optical Depth - '
                      'Comparing "C02" Concentration Influence'),
               y_label='Optical Depth',
Ejemplo n.º 5
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases Von Kries chromatic adaptation model computations.
"""

from __future__ import division, unicode_literals

import colour
from colour.utilities.verbose import message_box

message_box('Von Kries Chromatic Adaptation Model Computations')

XYZ_w = (1.09846607, 1., 0.3558228)
XYZ_wr = (1.09846607, 1., 0.3558228)
message_box(('Computing the chromatic adaptation matrix from two source '
             '"CIE XYZ" matrices, default CAT is "CAT02".\n'
             '\n\t"XYZ_w":\n\t\t{0}\n\t"XYZ_wr":\n\t\t{1}'.format(
    XYZ_w, XYZ_wr)))
print(colour.chromatic_adaptation_matrix_VonKries(XYZ_w, XYZ_wr))

print('\n')

message_box('Using "Bradford" CAT.')
print(colour.chromatic_adaptation_matrix_VonKries(
    XYZ_w, XYZ_wr, transform='Bradford'))

print('\n')

message_box(('Computing the chromatic adaptation matrix from '
Ejemplo n.º 6
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases correlated colour temperature computations.
"""

import colour
from colour.utilities.verbose import message_box

message_box('Correlated Colour Temperature Computations')

cmfs = colour.CMFS['CIE 1931 2 Degree Standard Observer']
illuminant = colour.ILLUMINANTS_RELATIVE_SPDS['D65']
xy = colour.XYZ_to_xy(colour.spectral_to_XYZ(illuminant, cmfs))
uv = colour.UCS_to_uv(colour.XYZ_to_UCS(colour.xy_to_XYZ(xy)))
message_box(('Converting to "CCT" and "D_uv" from given "CIE UCS" colourspace '
             '"uv" chromaticity coordinates using Ohno (2013) method:\n'
             '\n\t{0}'.format(uv)))
print(colour.uv_to_CCT_Ohno2013(uv, cmfs=cmfs))
print(colour.uv_to_CCT(uv, cmfs=cmfs))

print('\n')

message_box('Faster computation with 3 iterations but a lot less precise.')
print(colour.uv_to_CCT_Ohno2013(uv, cmfs=cmfs, iterations=3))

print('\n')

message_box(('Converting to "CCT" and "D_uv" from given "CIE UCS" colourspace '
             '"uv" chromaticity coordinates using Robertson (1968) method:\n'
Ejemplo n.º 7
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases *linear* to *log* and *log* to *linear* conversion computations.
"""

import colour
from colour.utilities.verbose import message_box

message_box('"Log" Conversion Computations')

linear = 18 / 100
message_box(('Converting "linear" to "log" using '
             '"Cineon" method for '
             'given "linear" value:\n'
             '\n\t{0}'.format(linear)))
print(colour.linear_to_cineon(linear))
print(colour.linear_to_log(linear, method='Cineon'))

print('\n')

log = 0.457319613085
message_box(('Converting "log" to "linear" using '
             '"Cineon" method for '
             'given "log" value:\n'
             '\n\t{0}'.format(log)))
print(colour.cineon_to_linear(log))
print(colour.log_to_linear(log, method='Cineon'))

print('\n')
Ejemplo n.º 8
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases colour models volume and gamut plotting examples.
"""

import numpy as np

from colour.plotting import *  # noqa
from colour.utilities.verbose import message_box

message_box('Colour Models Volume and Gamut Plots')

colour_plotting_defaults()

message_box(('Plotting "Rec. 709" RGB colourspace volume in "CIE xyY" '
             'colourspace.'))
RGB_colourspaces_gamuts_plot(('Rec. 709', ), reference_colourspace='CIE xyY')

print('\n')

message_box(('Comparing "Rec. 709" and "ACEScg" RGB colourspaces volume '
             'in "CIE Lab" colourspace.'))
RGB_colourspaces_gamuts_plot(
    ('Rec. 709', 'ACEScg'),
    reference_colourspace='CIE Lab',
    style={
        'face_colours': (None, (0.25, 0.25, 0.25)),
        'edge_colours': (None, (0.25, 0.25, 0.25)),
        'edge_alpha': (1.0, 0.1),
        'face_alpha': (1.0, 0.0)
Ejemplo n.º 9
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases correlated colour temperature computations.
"""

import colour
from colour.utilities.verbose import message_box

message_box('Correlated Colour Temperature Computations')

cmfs = colour.CMFS['CIE 1931 2 Degree Standard Observer']
illuminant = colour.ILLUMINANTS_RELATIVE_SPDS['D65']
xy = colour.XYZ_to_xy(colour.spectral_to_XYZ(illuminant, cmfs))
uv = colour.UCS_to_uv(colour.XYZ_to_UCS(colour.xy_to_XYZ(xy)))
message_box(('Converting to "CCT" and "Duv" from given "CIE UCS" colourspace '
             '"uv" chromaticity coordinates using "Yoshi Ohno (2013)" '
             'method:\n'
             '\n\t{0}'.format(uv)))
print(colour.uv_to_CCT_ohno2013(uv, cmfs=cmfs))
print(colour.uv_to_CCT(uv, cmfs=cmfs))

print('\n')

message_box('Faster computation with 3 iterations but a lot less precise.')
print(colour.uv_to_CCT_ohno2013(uv, cmfs=cmfs, iterations=3))

print('\n')

message_box(('Converting to "CCT" and "Duv" from given "CIE UCS" colourspace '
             '"uv" chromaticity coordinates using "Robertson (1968)" method:\n'
Ejemplo n.º 10
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases *CIE* chromaticity diagrams plotting examples.
"""

from colour.plotting import *  # noqa
from colour.utilities.verbose import message_box

message_box('"CIE" Chromaticity Diagrams Plots')

message_box('Plotting "CIE 1931 Chromaticity Diagram".')
CIE_1931_chromaticity_diagram_plot()

print('\n')

message_box('Plotting "CIE 1960 UCS Chromaticity Diagram".')
CIE_1960_UCS_chromaticity_diagram_plot()

print('\n')

message_box('Plotting "CIE 1976 UCS Chromaticity Diagram".')
CIE_1976_UCS_chromaticity_diagram_plot()
Ejemplo n.º 11
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases optical phenomenons plotting examples.
"""

from colour.phenomenons import rayleigh_scattering_spd
from colour.plotting import *  # noqa
from colour.utilities.verbose import message_box

message_box('Optical Phenomenons Plots')

message_box(('Plotting a single "Rayleigh Scattering" spectral power '
             'distribution.'))
single_rayleigh_scattering_spd_plot()

print('\n')

message_box(('Comparing multiple "Rayleigh Scattering" spectral power '
             'distributions with different CO_2 concentrations.'))
name_template = 'Rayleigh Scattering - CO2: {0} ppm'
rayleigh_spds = []
for ppm in (0, 50, 300):
    rayleigh_spd = rayleigh_scattering_spd(CO2_concentration=ppm)
    rayleigh_spd.name = name_template.format(ppm)
    rayleigh_spds.append(rayleigh_spd)
multi_spd_plot(rayleigh_spds,
               title=('Rayleigh Optical Depth - '
                      'Comparing "C02" Concentration Influence'),
               y_label='Optical Depth',
               legend_location='upper right')
Ejemplo n.º 12
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases reflectance recovery computations using *Smits (1999)* method.
"""

import colour
from colour.utilities.verbose import message_box

message_box('"Smits (1999)" - Reflectance Recovery Computations')

RGB = (0.35505307, 0.47995567, 0.61088035)
message_box(('Recovering reflectance using "Smits (1999)" method from '
             'given "RGB" colourspace array:\n'
             '\n\tRGB: {0}'.format(RGB)))
print(colour.RGB_to_spectral_Smits1999(RGB))

print('\n')

message_box(
    ('An analysis of "Smits (1999)" method is available at the '
     'following url : '
     'http://nbviewer.jupyter.org/github/colour-science/colour-website/'
     'blob/master/ipython/about_reflectance_recovery.ipynb'))
Ejemplo n.º 13
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases illuminants dataset.
"""

from pprint import pprint

import colour
from colour.utilities.verbose import message_box

message_box('Illuminants Dataset')

message_box('Illuminants relative spectral power distributions dataset.')
pprint(sorted(colour.ILLUMINANTS_RELATIVE_SPDS.keys()))

print('\n')

message_box('Illuminants chromaticity coordinates dataset.')
# Filtering aliases.
observers = dict(((observer, dataset)
                  for observer, dataset in sorted(colour.ILLUMINANTS.items())
                  if ' ' in observer))
for observer, illuminants in observers.items():
    print('"{0}".'.format(observer))
    for illuminant, xy in sorted(illuminants.items()):
        print('\t"{0}": {1}'.format(illuminant, xy))
    print('\n')
Ejemplo n.º 14
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases *Lightness* computations.
"""

from __future__ import division, unicode_literals

import numpy as np

import colour
from colour.utilities.verbose import message_box

message_box('"Lightness" Computations')

xyY = [0.4316, 0.3777, 0.1008]
message_box(('Computing "Lightness" "CIE Lab" reference value for given '
             '"CIE xyY" colourspace values:\n'
             '\n\t{0}'.format(xyY)))
print(np.ravel(colour.XYZ_to_Lab(colour.xyY_to_XYZ(xyY)))[0])

print('\n')

Y = 10.08
message_box(('Computing "Lightness" using "Glasser et al. (1958)" method for '
             'given "luminance" value:\n'
             '\n\t{0}'.format(Y)))
print(colour.lightness_glasser1958(Y))
print(colour.lightness(Y, method='Glasser 1958'))

print('\n')
Ejemplo n.º 15
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases colour spectrum computations.
"""

from __future__ import division, unicode_literals

import colour
from colour.utilities.verbose import message_box

message_box("Spectrum Computations")

sample_spd_data = {
    380: 0.048,
    385: 0.051,
    390: 0.055,
    395: 0.06,
    400: 0.065,
    405: 0.068,
    410: 0.068,
    415: 0.067,
    420: 0.064,
    425: 0.062,
    430: 0.059,
    435: 0.057,
    440: 0.055,
    445: 0.054,
    450: 0.053,
    455: 0.053,
Ejemplo n.º 16
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases *Photometry* computations.
"""

from __future__ import division, unicode_literals

import colour
from colour.utilities.verbose import message_box

message_box('"Photometry" Computations')

spd = colour.LIGHT_SOURCES_RELATIVE_SPDS.get('Neodimium Incandescent')
message_box(('Computing "Luminous Flux" for given spectral power '
             'distribution:\n'
             '\n\t{0}'.format(spd.name)))
print(colour.luminous_flux(spd))

print('\n')

message_box(('Computing "Luminous Efficiency" for given spectral power '
             'distribution:\n'
             '\n\t{0}'.format(spd.name)))
print(colour.luminous_efficiency(spd))

print('\n')

message_box(('Computing "Luminous Efficacy" for given spectral power '
             'distribution:\n'
             '\n\t{0}'.format(spd.name)))
Ejemplo n.º 17
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases CIECAM02 colour appearance model computations.
"""

import colour
from colour.utilities.verbose import message_box

message_box('CIECAM02 Colour Appearance Model Computations')

XYZ = (19.01, 20.00, 21.78)
XYZ_w = (95.05, 100.00, 108.88)
L_A = 318.31
Y_b = 20.0
surround = colour.CIECAM02_VIEWING_CONDITIONS['Average']
message_box(('Converting to CIECAM02 colour appearance model specification '
             'using given parameters:\n'
             '\n\tXYZ: {0}\n\tXYZ_w: {1}\n\tL_A: {2}\n\tY_b: {3}'
             '\n\tSurround: {4}').format(XYZ, XYZ_w, L_A, Y_b, surround))
specification = colour.XYZ_to_CIECAM02(XYZ, XYZ_w, L_A, Y_b, surround)
print(specification)

print('\n')

J = 41.731091132513917
C = 0.1047077571711053
h = 219.04843265827190
message_box(('Converting to "CIE XYZ" tristimulus values using given '
             'parameters:\n'
Ejemplo n.º 18
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases *RGB* colourspace derivation.
"""

import numpy as np

import colour
from colour.utilities.verbose import message_box

message_box('"RGB" Colourspace Derivation')

primaries = np.array([[0.73470, 0.26530], [0.00000, 1.00000],
                      [0.00010, -0.07700]])
whitepoint = (0.32168, 0.33767)
message_box(
    ('Computing the normalised primary matrix for "ACES RGB" '
     'colourspace transforming from "ACES RGB" colourspace to '
     '"CIE XYZ" colourspace using user defined primaries matrix and '
     'whitepoint:\n'
     '\n\t{0}\n\t{1}\n\t{2}\n\n\t{3}'.format(primaries[0], primaries[1],
                                             primaries[2], whitepoint)))
print(colour.normalised_primary_matrix(primaries, whitepoint))

print('\n')

message_box(('Computing the normalised primary matrix for "ACES RGB" '
             'colourspace transforming from "ACES RGB" colourspace to '
             '"CIE XYZ" colourspace using colour models dataset.'))
print(
Ejemplo n.º 19
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases colour rendition charts computations.
"""

from __future__ import division, unicode_literals

import numpy as np
from pprint import pprint

import colour
from colour.utilities.verbose import message_box

message_box('Colour Rendition Charts Computations')

message_box('Colour rendition charts chromaticity coordinates dataset.')
pprint(sorted(colour.COLOURCHECKERS.keys()))

print('\n')

message_box('Colour rendition charts spectral power distributions dataset.')
pprint(colour.COLOURCHECKERS_SPDS.keys())

print('\n')

message_box(('"ColorChecker 2005" colour rendition chart chromaticity '
             'coordinates data:\n'
             '\n\t("Patch Number", "Patch Name", "x", "y", "Y")'))
name, data, illuminant = colour.COLOURCHECKERS['ColorChecker 2005']
Ejemplo n.º 20
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases input / output IES TM-27-14 spectral data XML files related
examples.
"""

import os
from pprint import pprint

import colour
from colour.utilities.verbose import message_box

RESOURCES_DIRECTORY = os.path.join(os.path.dirname(__file__), 'resources')

message_box('IES TM-27-14 Spectral Data "XML" File IO')

message_box('Reading spectral data from IES TM-27-14 "XML" file.')
spd = colour.IES_TM2714_Spd(
    os.path.join(RESOURCES_DIRECTORY, 'TM27 Sample Spectral Data.spdx'))
spd.read()
print(spd)

print('\n')

message_box('IES TM-27-14 spectral data "XML" file header:')
print('Manufacturer: {0}'.format(spd.header.manufacturer))
print('Catalog Number: {0}'.format(spd.header.catalog_number))
print('Description: {0}'.format(spd.header.description))
print('Document Creator: {0}'.format(spd.header.document_creator))
print('Unique Identifier: {0}'.format(spd.header.unique_identifier))
Ejemplo n.º 21
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases deprecated colour models computations.
"""

import colour.models.rgb.deprecated
from colour.utilities.verbose import message_box

message_box(('Deprecated Colour Models Computations\n'
             '\nDon\'t use that! Seriously...'))

RGB = (0.49019608, 0.98039216, 0.25098039)
message_box(('Converting to "HSV" colourspace from given "RGB" colourspace '
             'values:\n'
             '\n\t{0}'.format(RGB)))
print(colour.models.rgb.deprecated.RGB_to_HSV(RGB))

print('\n')

HSV = (0.27867384, 0.74400000, 0.98039216)
message_box(('Converting to "RGB" colourspace from given "HSV" colourspace '
             'values:\n'
             '\n\t{0}'.format(HSV)))
print(colour.models.rgb.deprecated.HSV_to_RGB(HSV))

print('\n')

message_box(('Converting to "HSL" colourspace from given "RGB" colourspace '
             'values:\n'
Ejemplo n.º 22
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases Fairchild (1990) chromatic adaptation model computations.
"""

from __future__ import division, unicode_literals

import colour
from colour.utilities.verbose import message_box

message_box('Fairchild (1990) Chromatic Adaptation Model Computations')

XYZ_1 = (19.53, 23.07, 24.97)
XYZ_n = (111.15, 100.00, 35.20)
XYZ_r = (94.81, 100.00, 107.30)
Y_n = 200
message_box(('Computing chromatic adaptation using Fairchild (1990) '
             'chromatic adaptation model.\n'
             '\n\t"XYZ_1":\n\t\t{0}\n\t"XYZ_n":\n\t\t{1}\n\t"XYZ_r":\n\t\t{2}'
             '\n\t"Y_n":\n\t\t{3}'.format(XYZ_1, XYZ_n, XYZ_r, Y_n)))
print(colour.chromatic_adaptation_Fairchild1990(XYZ_1, XYZ_n, XYZ_r, Y_n))
Ejemplo n.º 23
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases light sources dataset.
"""

from __future__ import division, unicode_literals

from pprint import pprint

import colour
from colour.utilities.verbose import message_box

message_box('Light Sources Dataset')

message_box('Light sources relative spectral power distributions dataset.')
pprint(sorted(colour.LIGHT_SOURCES_RELATIVE_SPDS.keys()))

print('\n')

message_box('Light sources chromaticity coordinates dataset.')
# Filtering aliases.
observers = dict(((observer, dataset)
                  for observer, dataset in sorted(colour.LIGHT_SOURCES.items())
                  if ' ' in observer))
for observer, light_source in observers.items():
    print('"{0}".'.format(observer))
    for illuminant, xy in sorted(light_source.items()):
        print('\t"{0}": {1}'.format(illuminant, xy))
    print('\n')
Ejemplo n.º 24
0
import colour
from colour.utilities.verbose import message_box

input_nits = float(input("Enter a value in nits: "))

PQ_OETF = round(colour.models.eotf_inverse_ST2084(input_nits), 4)
bit8 = round(PQ_OETF * (2**8 - 1))
bit10 = round(PQ_OETF * (2**10 - 1))
bit12 = round(PQ_OETF * (2**12 - 1))
bit16 = round(PQ_OETF * (2**16 - 1))

message_box('With an input of {0} Nits,\n'
            'colour.models.eotf_inverse_ST2084:{1}\n'
            '8 bit code value:                 {2}\n'
            '10 bit code value:                {3}\n'
            '12 bit code value:                {4}\n'
            '16 bit code value:                {5}'.format(
                input_nits, f'{PQ_OETF:>30}', f'{bit8:>30}', f'{bit10:>30}',
                f'{bit12:>30}', f'{bit16:>30}'))

input_bit10 = int(input("Enter a 10 bit value (0-1023): "))

input_float = input_bit10 / 1023
PQ_EOTF = round(colour.models.eotf_ST2084(input_float), 4)
bit10 = round(input_bit10)
bit8 = round(bit10 / (2**10 - 1) * (2**8 - 1))
bit12 = round(bit10 / (2**10 - 1) * (2**12 - 1))
bit16 = round(bit10 / (2**10 - 1) * (2**16 - 1))

message_box('With an input of {0} 10-bit code value,\n'
            'colour.models.eotf_ST2084:        {1}\n'
Ejemplo n.º 25
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases *Lightness* computations.
"""

from __future__ import division, unicode_literals

import numpy as np

import colour
from colour.utilities.verbose import message_box

message_box('"Lightness" Computations')

xyY = (0.4316, 0.3777, 0.1008)
message_box(('Computing "Lightness" "CIE Lab" reference value for given '
             '"CIE xyY" colourspace values:\n'
             '\n\t{0}'.format(xyY)))
print(np.ravel(colour.XYZ_to_Lab(colour.xyY_to_XYZ(xyY)))[0])

print('\n')

Y = 10.08
message_box(('Computing "Lightness" using '
             'Glasser, Mckinney, Reilly and Schnelle (1958) method for '
             'given "luminance" value:\n'
             '\n\t{0}'.format(Y)))
print(colour.lightness_Glasser1958(Y))
print(colour.lightness(Y, method='Glasser 1958'))
Ejemplo n.º 26
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases corresponding chromaticities prediction plotting examples.
"""

from colour.plotting import *  # noqa
from colour.utilities.verbose import message_box

message_box('Corresponding Chromaticities Prediction Plots')

colour_plotting_defaults()

message_box('Plotting corresponding chromaticities prediction with '
            '"Von Kries" chromatic adaptation model for "Breneman (1987)" '
            'experiment number "2" using "Bianco" CAT.')
corresponding_chromaticities_prediction_plot(2, 'Von Kries', 'Bianco')

print('\n')

message_box('Plotting corresponding chromaticities prediction with '
            '"CMCCAT200" chromatic adaptation model for "Breneman (1987)" '
            'experiment number "4" using "Bianco" CAT.')
corresponding_chromaticities_prediction_plot(4, 'CMCCAT2000')
Ejemplo n.º 27
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases colorimetry plotting examples.
"""

from pprint import pprint

import colour
from colour.plotting import *  # noqa
from colour.utilities.verbose import message_box

message_box("Colorimetry Plots")

message_box(("Plotting a single illuminant relative spectral power " "distribution."))
single_illuminant_relative_spd_plot("F1")

print("\n")

message_box(("Plotting multiple illuminants relative spectral power " "distributions."))
pprint(sorted(colour.ILLUMINANTS_RELATIVE_SPDS.keys()))
multi_illuminants_relative_spd_plot(["A", "B", "C", "D50", "D55", "D60", "D65", "D75", "F1"])

print("\n")

message_box(('Plotting "CIE Standard Illuminant "A", "B", and "C" with their ' "normalised colours."))
multi_illuminants_relative_spd_plot(["A", "B", "C"], use_spds_colours=True, normalise_spds_colours=True)

print("\n")
Ejemplo n.º 28
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases input / output *CSV* tabular data related examples.
"""

import os
from pprint import pprint

import colour
from colour.io.common import format_spectral_data
from colour.utilities.verbose import message_box

RESOURCES_DIRECTORY = os.path.join(os.path.dirname(__file__), 'resources')

message_box('"CSV" Tabular Data IO')

message_box('Reading tabular data from "CSV" file.')
data = colour.read_spectral_data_from_csv_file(
    os.path.join(RESOURCES_DIRECTORY, 'babelcolor_average.csv'))
pprint(sorted(data.keys()))

print('\n')

message_box('Format spectral data for pretty printing.')
print(format_spectral_data(data))

print('\n')

message_box(('Reading spectral data from a "CSV" file directly as spectral '
             'power distributions.'))
Ejemplo n.º 29
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases *RGB* colourspace derivation.
"""

import numpy as np

import colour
from colour.utilities.verbose import message_box

message_box('"RGB" Colourspace Derivation')

primaries = np.array(
    [[0.73470, 0.26530],
     [0.00000, 1.00000],
     [0.00010, -0.07700]])
whitepoint = (0.32168, 0.33767)
message_box(('Computing the normalised primary matrix for "ACES2065-1" '
             'colourspace transforming from "ACES2065-1" colourspace to '
             '"CIE XYZ" tristimulus values using user defined primaries '
             'matrix and whitepoint:\n'
             '\n\t{0}\n\t{1}\n\t{2}\n\n\t{3}'.format(primaries[0],
                                                     primaries[1],
                                                     primaries[2],
                                                     whitepoint)))
print(colour.normalised_primary_matrix(primaries, whitepoint))

print('\n')
Ejemplo n.º 30
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases *Delta E* colour difference computations.
"""

import colour
from colour.utilities.verbose import message_box

message_box('"Delta E" Computations')

Lab1 = (100.00000000, 21.57210357, 272.22819350)
Lab2 = (100.00000000, 426.67945353, 72.39590835)
message_box(('Computing "Delta E" with CIE 1976 method from given *CIE Lab* '
             'colourspace matrices:\n'
             '\n\t{0}\n\t{1}'.format(Lab1, Lab2)))
print(colour.delta_E_CIE1976(Lab1, Lab2))
print(colour.delta_E(Lab1, Lab2, method='CIE 1976'))

print('\n')

message_box(('Computing "Delta E" with CIE 1994 method from given *CIE Lab* '
             'colourspace matrices:\n'
             '\n\t{0}\n\t{1}'.format(Lab1, Lab2)))
print(colour.delta_E_CIE1994(Lab1, Lab2))
print(colour.delta_E(Lab1, Lab2, method='CIE 1994'))

print('\n')

message_box(('Computing "Delta E" with CIE 1994 method from given *CIE Lab* '
Ejemplo n.º 31
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases *Luminance* computations.
"""

from __future__ import division, unicode_literals

import colour

from colour.utilities.verbose import message_box

message_box('"Luminance" Computations')

V = 3.74629715382
message_box(('Computing "luminance" using '
             '"Newhall, Nickerson, and Judd (1943)" method for given '
             '"Munsell" value:\n'
             '\n\t{0}'.format(V)))
print(colour.luminance_newhall1943(V))
print(colour.luminance(V, method='Newhall 1943'))

print('\n')

L = 37.9856290977
message_box(('Computing "luminance" using "CIE Lab (1976)" method for given '
             '"Lightness":\n'
             '\n\t{0}'.format(L)))
print(colour.luminance_1976(L))
print(colour.luminance(L))
Ejemplo n.º 32
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases overall *Colour* examples.
"""

from __future__ import division, unicode_literals

import numpy as np
import warnings

import colour
from colour.utilities.verbose import message_box, warning

message_box('Filter "Colour" Warnings')

warning('This is a first warning and it can be filtered!')

colour.filter_warnings(True)

warning('This is a second warning and it has been filtered!')

colour.filter_warnings(False)

warning('This is a third warning and it has not been filtered!')

message_box('All Python can be filtered by setting the '
            '"colour.filter_warnings" definition "colour_warnings_only" '
            'argument.')

warnings.warn('This is a fourth warning and it has not been filtered!')
Ejemplo n.º 33
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases luminous efficiency functions computations.
"""

from __future__ import division, unicode_literals

from pprint import pprint

import colour
from colour.utilities.verbose import message_box

message_box("Luminous Efficiency Functions Computations")

message_box("Luminous efficiency functions dataset.")
pprint(sorted(colour.LEFS))

print("\n")

message_box(("Computing the mesopic luminous efficiency function for factor:\n" "\n\t0.2"))
print(colour.mesopic_luminous_efficiency_function(0.2).values)
Ejemplo n.º 34
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases colour fitting computations.
"""

from __future__ import division, unicode_literals

import colour
from colour.utilities.verbose import message_box

message_box('Colour Fitting Computations')

message_box(('Fitting a "measured" "ColorChecker" colour rendition chart data '
             'to a "reference" one.\nThe output matrix is the transformation '
             'from "measured" values to "reference" values.\nThis example '
             'uses "first order" colour fitting based on "multiple linear '
             'regressions".'))

reference = (((0.17290600, 0.08205715,
               0.05711951), (0.56807350, 0.29250361,
                             0.21942000), (0.10437166, 0.19656122, 0.32946697),
              (0.10089156, 0.14839029,
               0.05324779), (0.22306044, 0.21697008,
                             0.43151034), (0.10718115, 0.51351274, 0.41399101),
              (0.74644090, 0.20020391,
               0.03077999), (0.05948985, 0.10659048,
                             0.39884205), (0.56735781, 0.08485298, 0.11940265),
              (0.11178198, 0.04285385,
               0.14161263), (0.34254479, 0.50627811,
                             0.05571580), (0.79268226, 0.35803827, 0.02544159),
Ejemplo n.º 35
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases CMCCAT2000 chromatic adaptation model computations.
"""

from __future__ import division, unicode_literals

import colour
from colour.utilities.verbose import message_box

message_box('CMCCAT200 Chromatic Adaptation Model Computations')

XYZ = (22.48, 22.74, 8.54)
XYZ_w = (111.15, 100.00, 35.20)
XYZ_wr = (94.81, 100.00, 107.30)
L_A1 = 200
L_A2 = 200
message_box(('Computing chromatic adaptation using CMCCAT200 forward '
             'chromatic adaptation model.\n'
             '\n\t"XYZ":\n\t\t{0}\n\t"XYZ_w":\n\t\t{1}\n\t"XYZ_wr":\n\t\t{2}'
             '\n\t"L_A1":\n\t\t{3}\n\t"L_A2":\n\t\t{4}'.format(
    XYZ, XYZ_w, XYZ_wr, L_A1, L_A2)))
print(colour.chromatic_adaptation_CMCCAT2000(XYZ, XYZ_w, XYZ_wr, L_A1, L_A2))

print('\n')

XYZ_c = (19.52698326, 23.0683396, 24.97175229)
message_box(('Computing chromatic adaptation using CMCCAT200 reverse '
             'chromatic adaptation model.\n'
Ejemplo n.º 36
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases colour matching functions computations.
"""

from pprint import pprint

import colour
from colour.utilities.verbose import message_box

message_box('Colour Matching Functions Computations')

message_box('Colour matching functions dataset.')
pprint(sorted(colour.CMFS.keys()))

print('\n')

message_box(('Converting from "Wright & Guild 1931 2 Degree RGB CMFs" colour '
             'matching functions to "CIE 1931 2 Degree Standard Observer" at '
             'wavelength 700 nm.'))
print(colour.RGB_2_degree_cmfs_to_XYZ_2_degree_cmfs(700))
print(
    colour.STANDARD_OBSERVERS_CMFS['CIE 1931 2 Degree Standard Observer'][700])

print('\n')

message_box(('Converting from "Stiles & Burch 1959 10 Degree RGB CMFs" colour '
             'matching functions to "CIE 1964 10 Degree Standard Observer" at '
             'wavelength 700 nm.'))
print(colour.RGB_10_degree_cmfs_to_XYZ_10_degree_cmfs(700))
Ejemplo n.º 37
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases *RGB* *colourspaces* computations.
"""

import numpy as np
from pprint import pprint

import colour
from colour.utilities.verbose import message_box

message_box('"RGB" Colourspaces Computations')

message_box('"RGB" colourspaces dataset.')
pprint(sorted(colour.RGB_COLOURSPACES.keys()))

print('\n')

message_box('"ACES RGB" colourspaces data.')
colourspace = colour.RGB_COLOURSPACES['ACES RGB']
print('Name:\n"{0}"'.format(colourspace.name))
print('\nPrimaries:\n{0}'.format(colourspace.primaries))
print('\nNormalised primary matrix to "CIE XYZ":\n{0}'.format(
    colourspace.to_XYZ))
print('\nNormalised primary matrix to "ACES RGB":\n{0}'.format(
    colourspace.to_RGB))
print('\nTransfer function from linear to colourspace:\n{0}'.format(
    colourspace.transfer_function))
print('\nInverse transfer function from colourspace to linear:\n{0}'.format(
Ejemplo n.º 38
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases colour rendition charts computations.
"""

import numpy as np
from pprint import pprint

import colour
from colour.utilities.verbose import message_box

message_box('Colour Rendition Charts Computations')

message_box('Colour rendition charts chromaticity coordinates dataset.')
pprint(sorted(colour.COLOURCHECKERS.keys()))

print('\n')

message_box('Colour rendition charts spectral power distributions dataset.')
pprint(colour.COLOURCHECKERS_SPDS.keys())

print('\n')

message_box(('"ColorChecker 2005" colour rendition chart chromaticity '
             'coordinates data:\n'
             '\n\t("Patch Number", "Patch Name", "xyY")'))
name, data, illuminant = colour.COLOURCHECKERS['ColorChecker 2005']
for index, name, xyY in data:
    print(index, name, xyY)
Ejemplo n.º 39
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases *Delta E* colour difference computations.
"""

import colour
from colour.utilities.verbose import message_box

message_box('"Delta E" Computations')

Lab1 = (100.00000000, 21.57210357, 272.22819350)
Lab2 = (100.00000000, 426.67945353, 72.39590835)
message_box(
    (
        'Computing "Delta E" with CIE 1976 method from given *CIE Lab* '
        "colourspace matrices:\n"
        "\n\t{0}\n\t{1}".format(Lab1, Lab2)
    )
)
print(colour.delta_E_CIE1976(Lab1, Lab2))
print(colour.delta_E(Lab1, Lab2, method="CIE 1976"))

print("\n")

message_box(
    (
        'Computing "Delta E" with CIE 1994 method from given *CIE Lab* '
        "colourspace matrices:\n"
        "\n\t{0}\n\t{1}".format(Lab1, Lab2)
Ejemplo n.º 40
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases common plotting examples.
"""

from colour.plotting import *  # noqa
from colour.utilities.verbose import message_box

message_box('Common Plots')

message_box('Plotting a single colour.')
single_colour_plot(ColourParameter('Neutral 5 (.70 D)',
                                   RGB=(0.32315746, 0.32983556, 0.33640183)),
                   text_size=32)

print('\n')

message_box('Plotting multiple colours.')
multi_colour_plot(
    (ColourParameter('Dark Skin', RGB=(0.45293517, 0.31732158, 0.26414773)),
     ColourParameter('Light Skin', RGB=(0.77875824, 0.57726450, 0.50453169))),
    spacing=0,
    text_size=32)
Ejemplo n.º 41
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases colour quality scale computations.
"""

from pprint import pprint

import colour
from colour.utilities.verbose import message_box

message_box('Colour Quality Scale Computations')

message_box('Computing "F2" illuminant colour rendering index.')
print(colour.colour_quality_scale(
    colour.ILLUMINANTS_RELATIVE_SPDS.get('F2')))

print('\n')

message_box(('Computing H38HT-100 mercury lamp colour quality scale with '
             'detailed output data.'))
pprint(colour.colour_quality_scale(
    colour.LIGHT_SOURCES_RELATIVE_SPDS.get('H38HT-100 (Mercury)'),
    additional_data=True))

print('\n')

message_box('Computing SDW-T 100W/LV Super HPS lamp colour quality scale.')
print(colour.colour_quality_scale(
    colour.LIGHT_SOURCES_RELATIVE_SPDS.get('SDW-T 100W/LV (Super HPS)')))
Ejemplo n.º 42
0
from colour.plotting import (colour_style, plot_cvd_simulation_Machado2009,
                             plot_image)
from colour.utilities.verbose import message_box

RESOURCES_DIRECTORY = os.path.join(
    os.path.dirname(os.path.abspath(__file__)), 'resources')

colour_style()

ISHIHARA_CBT_3_IMAGE = colour.oetf_reverse(
    colour.read_image(
        os.path.join(RESOURCES_DIRECTORY,
                     'Ishihara_Colour_Blindness_Test_Plate_3.png')),
    function='sRGB')

message_box('Colour Blindness Plots')

message_box('Displaying "Ishihara Colour Blindness Test - Plate 3".')
plot_image(colour.oetf(ISHIHARA_CBT_3_IMAGE),
           text_parameters={'text': 'Normal Trichromat', 'color': 'black'})

print('\n')

message_box('Simulating average "Protanomaly" on '
            '"Ishihara Colour Blindness Test - Plate 3" with Machado (2010) '
            'model and pre-computed matrix.')
plot_cvd_simulation_Machado2009(
    ISHIHARA_CBT_3_IMAGE, 'Protanomaly', 0.5,
    text_parameters={'text': 'Protanomaly - 50%', 'color': 'black'})

print('\n')
Ejemplo n.º 43
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases colour notation systems plotting examples.
"""

from colour.plotting import *  # noqa
from colour.utilities.verbose import message_box

message_box('Colour Notation Systems Plots')

message_box('Plotting a single "Munsell" value function.')
single_munsell_value_function_plot('Ladd 1955')

print('\n')

message_box('Plotting multiple "Munsell" value functions.')
multi_munsell_value_function_plot(['Ladd 1955',
                                   'Saunderson 1944'])
Ejemplo n.º 44
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases colour models computations.
"""

import colour
from colour.utilities.verbose import message_box

message_box('Colour Models Computations')

XYZ = (1.14176346, 1.00000000, 0.49815206)
message_box(('Converting to "CIE xyY" colourspace from given "CIE XYZ" '
             'tristimulus values:\n'
             '\n\t{0}'.format(XYZ)))
print(colour.XYZ_to_xyY(XYZ))

print('\n')

message_box(('The default illuminant if X == Y == Z == 0 is '
             '"CIE Standard Illuminant D Series D50".'))
print(colour.XYZ_to_xyY((0.00000000, 0.00000000, 0.00000000)))

print('\n')

message_box('Using an alternative illuminant.')
print(
    colour.XYZ_to_xyY(
        (0.00000000, 0.00000000, 0.00000000),
        colour.ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['D60']))
Ejemplo n.º 45
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases hexadecimal triplet computations.
"""

import colour.notation.triplet
from colour.utilities.verbose import message_box

message_box('Hexadecimal Triplet Computations')

RGB = (0.49019608, 0.98039216, 0.25098039)
message_box(('Converting to "hex triplet" representation from given "RGB" '
             'colourspace values:\n'
             '\n\t{0}'.format(RGB)))
print(colour.notation.triplet.RGB_to_HEX(RGB))

print('\n')

hex_triplet = '#7dfa40'
message_box(('Converting to "RGB" colourspace from given "hex triplet" '
             'representation:\n'
             '\n\t{0}'.format(hex_triplet)))
print(colour.notation.triplet.HEX_to_RGB(hex_triplet))
Ejemplo n.º 46
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases colorimetry plotting examples.
"""

from pprint import pprint

import colour
from colour.plotting import *  # noqa
from colour.utilities.verbose import message_box

message_box('Colorimetry Plots')

colour_plotting_defaults()

message_box(('Plotting a single illuminant relative spectral power '
             'distribution.'))
single_illuminant_relative_spd_plot('F1')

print('\n')

message_box(('Plotting multiple illuminants relative spectral power '
             'distributions.'))
pprint(sorted(colour.ILLUMINANTS_RELATIVE_SPDS.keys()))
multi_illuminants_relative_spd_plot(
    ['A', 'B', 'C', 'D50', 'D55', 'D60', 'D65', 'D75', 'F1'])

print('\n')

message_box(('Plotting "CIE Standard Illuminant "A", "B", and "C" with their '
Ejemplo n.º 47
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases Hunt colour appearance model computations.
"""

import colour
from colour.appearance.hunt import Hunt_ReferenceSpecification
from colour.utilities.verbose import message_box

message_box('Hunt Colour Appearance Model Computations')

XYZ = (19.01, 20.00, 21.78)
XYZ_w = (95.05, 100.00, 108.88)
XYZ_b = (95.05, 100.00, 108.88)
L_A = 318.31
surround = colour.HUNT_VIEWING_CONDITIONS['Normal Scenes']
CCT_w = 6504.0
message_box(('Converting to Hunt colour appearance model '
             'specification using given parameters:\n'
             '\n\tXYZ: {0}\n\tXYZ_w: {1}\n\tXYZ_b: {2}\n\tL_A: {3}'
             '\n\tsurround: {4}\n\tCCT_w: {5}'.format(XYZ,
                                                      XYZ_w,
                                                      XYZ_b,
                                                      L_A,
                                                      surround,
                                                      CCT_w)))

specification = colour.XYZ_to_Hunt(XYZ,
                                   XYZ_w,
Ejemplo n.º 48
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases *CIE XYZ* tristimulus values computations.
"""

import colour
from colour.utilities.verbose import message_box

message_box('"CIE XYZ" Tristimulus Values Computations')

sample_spd_data = {
    380: 0.048,
    385: 0.051,
    390: 0.055,
    395: 0.060,
    400: 0.065,
    405: 0.068,
    410: 0.068,
    415: 0.067,
    420: 0.064,
    425: 0.062,
    430: 0.059,
    435: 0.057,
    440: 0.055,
    445: 0.054,
    450: 0.053,
    455: 0.053,
    460: 0.052,
    465: 0.052,
    470: 0.052,
Ejemplo n.º 49
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases colour spectral bandpass dependence correction computations.
"""

from __future__ import division, unicode_literals

import numpy as np

import colour
from colour.utilities.verbose import message_box

message_box('Spectral Bandpass Dependence Correction')

message_box(('Applying spectral bandpass dependence correction on a sample '
             'spectral power distribution using Stearns and Stearns (1988) '
             'method:\n'
             '\n\t("Measured Values", "Corrected Values")'))
sample_spd_data = {
    380: 0.048,
    385: 0.051,
    390: 0.055,
    395: 0.060,
    400: 0.065,
    405: 0.068,
    410: 0.068,
    415: 0.067,
    420: 0.064,
    425: 0.062,
Ejemplo n.º 50
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases *Rayleigh Optical Depth* computations examples.
"""

import colour
from colour.phenomenons import (rayleigh_optical_depth,
                                rayleigh_scattering_spd,
                                scattering_cross_section)
from colour.utilities.verbose import message_box

message_box('"Rayleigh" Optical Depth Computations')

wavelength = 555 * 10e-8
message_box(('Computing the scattering cross section per molecule at given '
             'wavelength in cm:\n'
             '\n\tWavelength: {0} cm'.format(wavelength)))
print(scattering_cross_section(wavelength))

print('\n')

message_box(('Computing the "Rayleigh" optical depth as function of '
             'wavelength in cm:\n'
             '\n\tWavelength: {0} cm'.format(wavelength)))
print(rayleigh_optical_depth(wavelength))

print('\n')

message_box(('Creating a "Rayleigh" spectral power distribution with default '
             'spectral shape:\n'
Ejemplo n.º 51
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases reflectance recovery computations using Smits (1999) method.
"""

import colour
from colour.utilities.verbose import message_box

message_box('Smits (1999) - Reflectance Recovery Computations')

RGB = (0.35505307, 0.47995567, 0.61088035)
message_box(('Recovering reflectance using Smits (1999) method from '
             'given "RGB" colourspace array:\n'
             '\n\tRGB: {0}'.format(RGB)))
print(colour.RGB_to_spectral_Smits1999(RGB))

print('\n')

message_box(('An analysis of Smits (1999) method is available at the '
             'following url : '
             'http://nbviewer.ipython.org/github/colour-science/colour-website/blob/master/ipython/about_reflectance_recovery.ipynb'))  # noqa
Ejemplo n.º 52
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases colour models plotting examples.
"""

import numpy as np
from pprint import pprint

import colour
from colour.plotting import *  # noqa
from colour.utilities.verbose import message_box

message_box('Colour Models Plots')

colour_plotting_defaults()

message_box('Plotting "RGB" colourspaces in "CIE 1931 Chromaticity Diagram".')
pprint(sorted(colour.RGB_COLOURSPACES.keys()))
RGB_colourspaces_CIE_1931_chromaticity_diagram_plot(
    ['Rec. 709', 'ACEScg', 'S-Gamut', 'Pointer Gamut'])

print('\n')

message_box(('Plotting "RGB" colourspaces in '
             '"CIE 1960 UCS Chromaticity Diagram".'))
pprint(sorted(colour.RGB_COLOURSPACES.keys()))
RGB_colourspaces_CIE_1960_UCS_chromaticity_diagram_plot(
    ['Rec. 709', 'ACEScg', 'S-Gamut', 'Pointer Gamut'])

print('\n')
Ejemplo n.º 53
0
# -*- coding: utf-8 -*-

"""
Showcases input / output IES TM-27-14 spectral data XML files related
examples.
"""

import os
from pprint import pprint

import colour
from colour.utilities.verbose import message_box

RESOURCES_DIRECTORY = os.path.join(os.path.dirname(__file__), 'resources')

message_box('IES TM-27-14 Spectral Data "XML" File IO')

message_box('Reading spectral data from IES TM-27-14 "XML" file.')
spd = colour.IES_TM2714_Spd(os.path.join(RESOURCES_DIRECTORY,
                                         'TM27 Sample Spectral Data.spdx'))
spd.read()
print(spd)

print('\n')

message_box('IES TM-27-14 spectral data "XML" file header:')
print('Manufacturer: {0}'.format(spd.header.manufacturer))
print('Catalog Number: {0}'.format(spd.header.catalog_number))
print('Description: {0}'.format(spd.header.description))
print('Document Creator: {0}'.format(spd.header.document_creator))
print('Unique Identifier: {0}'.format(spd.header.unique_identifier))
Ejemplo n.º 54
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases *Nayatani (1995)* colour appearance model computations.
"""

import numpy as np

import colour
from colour.appearance.nayatani95 import Nayatani95_ReferenceSpecification
from colour.utilities.verbose import message_box

message_box('"Nayatani (1995)" Colour Appearance Model Computations')

XYZ = np.array([19.01, 20, 21.78])
XYZ_n = np.array([95.05, 100, 108.88])
Y_o = 20.0
E_o = 5000.0
E_or = 1000.0
message_box(('Converting to "Nayatani (1995)" colour appearance model '
             'specification using given parameters:\n'
             '\n\tXYZ: {0}\n\tXYZ_n: {1}\n\tY_o: {2}\n\tE_o: {3}'
             '\n\tE_or: {4}'.format(XYZ, XYZ_n, Y_o, E_o, E_or)))
specification = colour.XYZ_to_Nayatani95(XYZ, XYZ_n, Y_o, E_o, E_or)
print(specification)

print('\n')

message_box(('Broadcasting current output "Nayatani (1995)" colour appearance '
             'model specification to reference specification.\n'
Ejemplo n.º 55
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases Nayatani (1995) colour appearance model computations.
"""

import colour
from colour.appearance.nayatani95 import Nayatani95_ReferenceSpecification
from colour.utilities.verbose import message_box

message_box('Nayatani (1995) Colour Appearance Model Computations')

XYZ = (19.01, 20.00, 21.78)
XYZ_n = (95.05, 100.00, 108.88)
Y_o = 20.0
E_o = 5000.0
E_or = 1000.0
message_box(('Converting to Nayatani (1995) colour appearance model '
             'specification using given parameters:\n'
             '\n\tXYZ: {0}\n\tXYZ_n: {1}\n\tY_o: {2}\n\tE_o: {3}'
             '\n\tE_or: {4}'.format(XYZ, XYZ_n, Y_o, E_o, E_or)))
specification = colour.XYZ_to_Nayatani95(XYZ, XYZ_n, Y_o, E_o, E_or)
print(specification)

print('\n')

message_box(('Broadcasting current output Nayatani (1995) colour appearance '
             'model specification to reference specification.\n'
             'The intent of this reference specification is to provide names '
             'as closest as possible to "Mark D. Fairchild" reference.\n'
Ejemplo n.º 56
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Showcases *RGB* *colourspaces* computations.
"""

import numpy as np
from pprint import pprint

import colour
from colour.utilities.verbose import message_box

message_box('"RGB" Colourspaces Computations')

message_box('"RGB" colourspaces dataset.')
pprint(sorted(colour.RGB_COLOURSPACES.keys()))

print('\n')

message_box('"ACES2065-1" colourspaces data.')
colourspace = colour.RGB_COLOURSPACES['ACES2065-1']
print('Name:\n"{0}"'.format(colourspace.name))
print('\nPrimaries:\n{0}'.format(colourspace.primaries))
print(('\nNormalised primary matrix to "CIE XYZ" '
       'tristimulus values:\n{0}').format(colourspace.RGB_to_XYZ_matrix))
print('\nNormalised primary matrix to "ACES2065-1":\n{0}'.format(
    colourspace.XYZ_to_RGB_matrix))
print('\nOpto-electronic conversion function from '
      'linear to colourspace:\n{0}'.format(colourspace.OECF))
print('\nElectro-optical conversion function from '
      'colourspace to linear:\n{0}'.format(colourspace.EOCF))
Ejemplo n.º 57
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases *Munsell Renotation System* computations.
"""

import colour
from colour.utilities.verbose import message_box

message_box('"Munsell Renotation System" Computations')

Y = 10.08
message_box(('Computing "Munsell" value using '
             'Priest, Gibson and MacNicholas (1920) method for given '
             '"luminance" value:\n'
             '\n\t{0}'.format(Y)))
print(colour.munsell_value_Priest1920(Y))
print(colour.munsell_value(Y, method='Priest 1920'))

print('\n')

message_box(('Computing "Munsell" value using '
             'Munsell, Sloan and Godlove (1933) method for given '
             '"luminance" value:\n'
             '\n\t{0}'.format(Y)))
print(colour.munsell_value_Munsell1933(Y))
print(colour.munsell_value(Y, method='Munsell 1933'))

print('\n')
Ejemplo n.º 58
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases colour models computations.
"""

import colour
from colour.utilities.verbose import message_box

message_box('Colour Models Computations')

XYZ = [1.14176346, 1., 0.49815206]
message_box(('Converting to "CIE xyY" colourspace from given "CIE XYZ" '
             'colourspace values:\n'
             '\n\t{0}'.format(XYZ)))
print(colour.XYZ_to_xyY(XYZ))

print('\n')

message_box(('The default illuminant if X == Y == Z == 0 is '
             'CIE Standard Illuminant D Series D50".'))
print(colour.XYZ_to_xyY([0, 0, 0]))

print('\n')

message_box('Using an alternative illuminant.')
print(colour.XYZ_to_xyY(
    [0, 0, 0],
    colour.ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['D60']))
Ejemplo n.º 59
0
# -*- coding: utf-8 -*-

"""
Showcases input / output CSV tabular data related examples.
"""

import os
from pprint import pprint

import colour
from colour.io.common import format_spectral_data
from colour.utilities.verbose import message_box

RESOURCES_DIRECTORY = os.path.join(os.path.dirname(__file__), 'resources')

message_box('CSV Tabular Data IO')

message_box('Reading tabular data from CSV file.')
data = colour.read_spectral_data_from_csv_file(
    os.path.join(RESOURCES_DIRECTORY, 'babelcolor_average.csv'))
pprint(sorted(data.keys()))

print('\n')

message_box('Format spectral data for pretty printing.')
print(format_spectral_data(data))

print('\n')

message_box(('Reading spectral data from a CSV file directly as spectral '
             'power distributions.'))
Ejemplo n.º 60
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Showcases corresponding chromaticities prediction computations.
"""

from __future__ import division, unicode_literals

from pprint import pprint

import colour
from colour.utilities.verbose import message_box

message_box('Corresponding Chromaticities Prediction Computations')

message_box(('Computing corresponding chromaticities prediction with '
             'Von Kries chromatic adaptation model for Breneman (1987) '
             'experiment number "3" and "Bianco" CAT.'))
pprint(colour.corresponding_chromaticities_prediction_VonKries(3, 'Bianco'))

print('\n')

message_box(('Computing corresponding chromaticities prediction with '
             'CIE 1994 chromatic adaptation model for Breneman (1987) '
             'experiment number "1".'))
pprint(colour.corresponding_chromaticities_prediction_CIE1994(1))

print('\n')

message_box(('Computing corresponding chromaticities prediction with '