Skip to content

Instantly share code, notes, and snippets.

@KelSolaar
Created September 30, 2014 20:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KelSolaar/7098c6709c59b9afb018 to your computer and use it in GitHub Desktop.
Save KelSolaar/7098c6709c59b9afb018 to your computer and use it in GitHub Desktop.
Colour Temperature Ramblings
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:06ae9bb8a6c1a7728bcb24a584025e014ea1fe4f0388f1908f3d7105959056ef"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Colour Temperature Ramblings"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"User Defined Illuminant"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import colour # Importing the API namespace.\n",
"from colour.plotting import * # Importing all the plotting objects.\n",
"\n",
"# Defining some convenient shortcuts variables.\n",
"sRGB_w = colour.sRGB_COLOURSPACE.whitepoint # *CIE Standard Illuminant D Series* *D65*.\n",
"sRGB_XYZ_to_RGB = colour.sRGB_COLOURSPACE.XYZ_to_RGB_matrix\n",
"sRGB_RGB_to_XYZ = colour.sRGB_COLOURSPACE.RGB_to_XYZ_matrix\n",
"sRGB_oecf = colour.sRGB_COLOURSPACE.transfer_function # Opto-electronic conversion function from *CIE XYZ* to *RGB*.\n",
"sRGB_inverse_oecf = colour.sRGB_COLOURSPACE.inverse_transfer_function # Opto-electronic conversion function from *CIE XYZ* to *RGB*.\n",
"\n",
"# Retrieving *CIE Standard Illuminant E* chromaticity coordinates.\n",
"# E = colour.ILLUMINANTS['CIE 1931 2 Degree Standard Observer']['E']\n",
"E = colour.ILLUMINANTS['cie_2_1931'][\n",
" 'E'] # Accessing the data using a convenient alias.\n",
"\n",
"# Defining a 50% gray *sRGB* colour.\n",
"RGB = (0.5, 0.5, 0.5)\n",
"\n",
"# Converting the 50% gray colour to *CIE XYZ*, under the *CIE Standard Illuminant E*.\n",
"XYZ = colour.RGB_to_XYZ(RGB,\n",
" sRGB_w,\n",
" E,\n",
" sRGB_RGB_to_XYZ,\n",
" 'CAT02',\n",
" sRGB_inverse_oecf)\n",
"\n",
"# Defining a convenient function to perform *temperature* change.\n",
"def temperature(XYZ, illuminant):\n",
" return colour.XYZ_to_RGB(XYZ,\n",
" E,\n",
" illuminant,\n",
" sRGB_XYZ_to_RGB,\n",
" 'CAT02',\n",
" sRGB_oecf)\n",
"\n",
"# Plotting various colour patches to illustrate the *temperature* change using\n",
"# a given illuminant.\n",
"multi_colour_plot(\n",
" (colour_parameter('Gray \"Original\"', RGB),\n",
" colour_parameter('Gray \"A\"',\n",
" temperature(XYZ,\n",
" colour.ILLUMINANTS['cie_2_1931']['A'])),\n",
" colour_parameter('Gray \"B\"',\n",
" temperature(XYZ,\n",
" colour.ILLUMINANTS['cie_2_1931']['B'])),\n",
" colour_parameter('Gray \"C\"',\n",
" temperature(XYZ,\n",
" colour.ILLUMINANTS['cie_2_1931']['C'])), \n",
" colour_parameter('Gray \"D50\"',\n",
" temperature(XYZ,\n",
" colour.ILLUMINANTS['cie_2_1931']['D50'])),\n",
" colour_parameter('Gray \"D55\"',\n",
" temperature(XYZ,\n",
" colour.ILLUMINANTS['cie_2_1931']['D55'])),\n",
" colour_parameter('Gray \"D60\"',\n",
" temperature(XYZ,\n",
" colour.ILLUMINANTS['cie_2_1931']['D60'])),\n",
" colour_parameter('Gray \"D65\"',\n",
" temperature(XYZ,\n",
" colour.ILLUMINANTS['cie_2_1931']['D65'])),\n",
" colour_parameter('Gray \"D75\"',\n",
" temperature(XYZ,\n",
" colour.ILLUMINANTS['cie_2_1931']['D75']))),\n",
" text_size=16)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stderr",
"text": [
"/home/vagrant/anaconda/envs/python2.7/lib/python2.7/site-packages/matplotlib/font_manager.py:1236: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to Bitstream Vera Sans\n",
" (prop.get_family(), self.defaultFamily[fontext]))\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x7f721c44ced0>"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 1,
"text": [
"True"
]
}
],
"prompt_number": 1
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Using Correlated Colour Temperature"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def CCT_to_xy(CCT, tint=0):\n",
" return colour.UCS_uv_to_xy(colour.CCT_to_uv_ohno2013(CCT, tint / 6000))\n",
"\n",
"# Plotting various colour patches to illustrate the *temperature* change using\n",
"# a given correlated colour temperature and tint.\n",
"multi_colour_plot(\n",
" (colour_parameter('Gray \"Original\"', RGB),\n",
" colour_parameter('Gray \"3K\"',\n",
" temperature(XYZ,\n",
" CCT_to_xy(3000))),\n",
" colour_parameter('Gray \"4K\"',\n",
" temperature(XYZ,\n",
" CCT_to_xy(4000))),\n",
" colour_parameter('Gray \"5K\"',\n",
" temperature(XYZ,\n",
" CCT_to_xy(5000))), \n",
" colour_parameter('Gray \"6K\"',\n",
" temperature(XYZ,\n",
" CCT_to_xy(6000))),\n",
" colour_parameter('Gray \"7K\"',\n",
" temperature(XYZ,\n",
" CCT_to_xy(7000))),\n",
" colour_parameter('Gray \"8K\"',\n",
" temperature(XYZ,\n",
" CCT_to_xy(8000))),\n",
" colour_parameter('Gray \"9K\"',\n",
" temperature(XYZ,\n",
" CCT_to_xy(9000))),\n",
" colour_parameter('Gray \"10K\"',\n",
" temperature(XYZ,\n",
" CCT_to_xy(10000))),\n",
" colour_parameter('Gray \"6K, -150T\"',\n",
" temperature(XYZ,\n",
" CCT_to_xy(6000, -150.))),\n",
" colour_parameter('Gray \"6K, 0T\"',\n",
" temperature(XYZ,\n",
" CCT_to_xy(6000, 0))),\n",
" colour_parameter('Gray \"6K, 150T\"',\n",
" temperature(XYZ,\n",
" CCT_to_xy(6000, 150.)))),\n",
" text_size=8)\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x7f721c336f10>"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 2,
"text": [
"True"
]
}
],
"prompt_number": 2
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment