Import

from pprint import pprint

import colour
import matplotlib.pyplot as plt
import numpy as np

可視光のプロット

colour.plotting.colour_style()
plt.style.use({'figure.figsize': (10.24, 2.0)})
colour.plotting.plot_visible_spectrum()

Untitled

光源のデータの取得

昼間の太陽光の分光分布データの取得

d65_sd = colour.SDS_ILLUMINANTS.get('D65')

pprint(d65_sd)

SpectralDistribution([[ 3.00000000e+02, 3.41000000e-02], [ 3.05000000e+02, 1.66430000e+00], [ 3.10000000e+02, 3.29450000e+00], [ 3.15000000e+02, 1.17652000e+01], [ 3.20000000e+02, 2.02360000e+01], [ 3.25000000e+02, 2.86447000e+01], [ 3.30000000e+02, 3.70535000e+01], [ 3.35000000e+02, 3.85011000e+01], [ 3.40000000e+02, 3.99488000e+01], [ 3.45000000e+02, 4.24302000e+01], [ 3.50000000e+02, 4.49117000e+01], [ 3.55000000e+02, 4.57750000e+01], [ 3.60000000e+02, 4.66383000e+01], [ 3.65000000e+02, 4.93637000e+01], [ 3.70000000e+02, 5.20891000e+01], [ 3.75000000e+02, 5.10323000e+01], [ 3.80000000e+02, 4.99755000e+01], [ 3.85000000e+02, 5.23118000e+01], [ 3.90000000e+02, 5.46482000e+01], [ 3.95000000e+02, 6.87015000e+01], [ 4.00000000e+02, 8.27549000e+01], [ 4.05000000e+02, 8.71204000e+01], [ 4.10000000e+02, 9.14860000e+01], [ 4.15000000e+02, 9.24589000e+01], [ 4.20000000e+02, 9.34318000e+01], ... LinearInterpolator, {}, Extrapolator, {'method': 'Constant', 'left': None, 'right': None})

プロット

colour.plotting.colour_style()
colour.plotting.plot_single_sd(d65_sd, y_tighten=True,);

Untitled

物体の反射率の取得

カラーチェッカーのタイプの取得

sorted(colour.SDS_COLOURCHECKERS)

['BabelColor Average', 'ColorChecker N Ohta', 'ISO 17321-1', 'babel_average', 'cc_ohta']

カラーチェッカーのパッチのデータを取得

checker = colour.SDS_COLOURCHECKERS.get('ISO 17321-1')
sorted(checker)

['black 2 (1.5 D)', 'blue', 'blue flower', 'blue sky', 'bluish green', 'cyan', 'dark skin', 'foliage', 'green', 'light skin', 'magenta', 'moderate red', 'neutral 3.5 (1.05 D)', 'neutral 5 (.70 D)', 'neutral 6.5 (.44 D)', 'neutral 8 (.23 D)', 'orange', 'orange yellow', 'purple', 'purplish blue', 'red', 'white 9.5 (.05 D)', 'yellow', 'yellow green']