summaryrefslogtreecommitdiff
path: root/test_example.py
blob: a4104b13c8323a6c277fd4aecb5562eaf80f2695 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import numpy as np
from colour import *
from colour.models import eotf_inverse_sRGB
from colour.difference import delta_E_CIE1976
from colour.recovery import XYZ_to_sd_Jakob2019
from gsoc_common import model_sd, D65, D65_xy, plot_comparison

if __name__ == "__main__":
	# These numbers are taken from Jakob and Hanika's Jupyter notebook.
	RGB_ref = np.array([0.79264853,  0.4, 0.63703843]) # *linear* sRGB
	cc_ref = np.array([ 18.70184886, -13.19804478, 2.12180137])

	XYZ = sRGB_to_XYZ(eotf_inverse_sRGB(RGB_ref), D65_xy)
	Lab = XYZ_to_Lab(XYZ, D65_xy)
	print("Target: X=%g, Y=%g, Z=%g, L=%g, a=%g, b=%g" % (*XYZ, *Lab))

	reference_sd = model_sd(cc_ref)
	reference_XYZ = sd_to_XYZ(reference_sd, illuminant=D65) / 100
	reference_Lab = XYZ_to_Lab(reference_XYZ, D65_xy)

	found_sd, error = XYZ_to_sd_Jakob2019(XYZ, return_error=True)
	found_XYZ = sd_to_XYZ(found_sd, illuminant=D65) / 100
	found_Lab = XYZ_to_Lab(found_XYZ, D65_xy)

	print("Our results differ from the reference by ΔE = %g" \
	      % delta_E_CIE1976(reference_Lab, found_Lab))

	plot_comparison(XYZ, found_sd, "Reference", error, D65)