diff options
Diffstat (limited to 'test_colorchecker.py')
-rw-r--r-- | test_colorchecker.py | 49 |
1 files changed, 8 insertions, 41 deletions
diff --git a/test_colorchecker.py b/test_colorchecker.py index b0c9688..fc54d84 100644 --- a/test_colorchecker.py +++ b/test_colorchecker.py @@ -1,48 +1,15 @@ import numpy as np from colour import * -from colour.plotting import * -from matplotlib import pyplot as plt -from jakob_hanika import jakob_hanika, model_sd - - - -illuminant = "D65" -ill_xy = ILLUMINANTS["CIE 1931 2 Degree Standard Observer"][illuminant] -ill_sd = SpectralDistribution(ILLUMINANT_SDS[illuminant]) - - - -# Makes a comparison plot with SDs and swatches -def plot_comparison(target, matched_sd, label, error, ill_sd, show=True): - if type(target) is SpectralDistribution: - target_XYZ = sd_to_XYZ(target, illuminant=ill_sd) / 100 - else: - target_XYZ = target - target_RGB = np.clip(XYZ_to_sRGB(target_XYZ), 0, 1) - target_swatch = ColourSwatch(label, target_RGB) - matched_XYZ = sd_to_XYZ(matched_sd, illuminant=ill_sd) / 100 - matched_RGB = np.clip(XYZ_to_sRGB(matched_XYZ), 0, 1) - matched_swatch = ColourSwatch("Model", matched_RGB) - - axes = plt.subplot(2, 1, 1) - plt.title(label) - if type(target) is SpectralDistribution: - plot_multi_sds([target, matched_sd], axes=axes, standalone=False) - else: - plot_single_sd(matched_sd, axes=axes, standalone=False) - - axes = plt.subplot(2, 1, 2) - plt.title("ΔE = %g" % error) - plot_multi_colour_swatches([target_swatch, matched_swatch], - standalone=show, axes=axes) +from gsoc_common import D65, D65_xy, jakob_hanika, model_sd, plot_comparison +# This demo goes through SDs in a color checker if __name__ == "__main__": - # This demo goes through SDs in a color checker - for name, sd in COLOURCHECKERS_SDS['ColorChecker N Ohta'].items(): - XYZ = sd_to_XYZ(sd, illuminant=ill_sd) / 100 + for name, sd in COLOURCHECKER_SDS['ColorChecker N Ohta'].items(): + XYZ = sd_to_XYZ(sd, illuminant=D65) / 100 - print("Color checker: The target is '%s' with X=%g, Y=%g, Z=%g" % (name, *XYZ)) - ccp, error = jakob_hanika(XYZ, ill_sd, ill_xy) + print("Color checker: The target is '%s' with X=%g, Y=%g, Z=%g" + % (name, *XYZ)) + ccp, error = jakob_hanika(XYZ, D65, D65_xy) matched_sd = model_sd(ccp) - plot_comparison(sd, matched_sd, name, error, ill_sd) + plot_comparison(sd, matched_sd, name, error, D65) |