#!/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'])
#!/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 '
#!/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(
#!/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',
#!/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 '
#!/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'
#!/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')
#!/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)
#!/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'
#!/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()
#!/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')
#!/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'))
#!/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')
#!/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')
#!/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,
#!/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)))
#!/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'
#!/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(
#!/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']
#!/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))
#!/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'
#!/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))
#!/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')
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'
#!/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'))
#!/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')
#!/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")
#!/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.'))
#!/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')
#!/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* '
#!/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))
#!/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!')
#!/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)
#!/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),
#!/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'
#!/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))
#!/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(
#!/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)
#!/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)
#!/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)
#!/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)')))
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')
#!/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'])
#!/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']))
#!/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))
#!/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 '
#!/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,
#!/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,
#!/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,
#!/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'
#!/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
#!/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')
# -*- 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))
#!/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'
#!/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'
#!/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))
#!/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')
#!/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']))
# -*- 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.'))
#!/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 '