colour.recovery.find_coefficients_Jakob2019(XYZ: ArrayLike, cmfs: MultiSpectralDistributions | None = None, illuminant: SpectralDistribution | None = None, coefficients_0: ArrayLike = zeros(3), max_error: float = JND_CIE1976 / 100, dimensionalise: bool = True) Tuple[NDArrayFloat, float][source]#

Compute the coefficients for Jakob and Hanika (2019) reflectance spectral model.

  • XYZ (ArrayLike) – CIE XYZ tristimulus values to find the coefficients for.

  • cmfs (MultiSpectralDistributions | None) – Standard observer colour matching functions, default to the CIE 1931 2 Degree Standard Observer.

  • illuminant (SpectralDistribution | None) – Illuminant spectral distribution, default to CIE Standard Illuminant D65.

  • coefficients_0 (ArrayLike) – Starting coefficients for the solver.

  • max_error (float) – Maximal acceptable error. Set higher to save computational time. If None, the solver will keep going until it is very close to the minimum. The default is ACCEPTABLE_DELTA_E.

  • dimensionalise (bool) – If True, returned coefficients are dimensionful and will not work correctly if fed back as coefficients_0. The default is True.


Tuple of computed coefficients that best fit the given colour and \(\Delta E_{76}\) between the target colour and the colour corresponding to the computed coefficients.

Return type:





>>> XYZ = np.array([0.20654008, 0.12197225, 0.05136952])
>>> find_coefficients_Jakob2019(XYZ)  
(array([  1.3723791...e-04,  -1.3514399...e-01,   3.0838973...e+01]), 0.0141941...)