colour.spectral_similarity_index#
- colour.spectral_similarity_index(sd_test: SpectralDistribution | MultiSpectralDistributions, sd_reference: SpectralDistribution | MultiSpectralDistributions, round_result: bool = True) NDArrayFloat[source]#
Compute the Academy Spectral Similarity Index (SSI) of the specified test spectral distribution or multi-spectral distributions with the specified reference spectral distribution or multi-spectral distributions.
- Parameters:
sd_test (SpectralDistribution | MultiSpectralDistributions) – Test spectral distribution or multi-spectral distributions.
sd_reference (SpectralDistribution | MultiSpectralDistributions) – Reference spectral distribution or multi-spectral distributions.
round_result (bool) – Whether to round the result/output. This is particularly useful when using SSI in an optimisation routine. Default is True.
- Returns:
Academy Spectral Similarity Index (SSI). When both inputs are
colour.SpectralDistributionobjects, returns a scalar. When either input is acolour.MultiSpectralDistributionsobject, returns an array with one SSI value per spectral distribution.- Return type:
References
Examples
>>> from colour import SDS_ILLUMINANTS >>> sd_test = SDS_ILLUMINANTS["C"] >>> sd_reference = SDS_ILLUMINANTS["D65"] >>> spectral_similarity_index(sd_test, sd_reference) 94.0
Computing SSI for multi-spectral distributions:
>>> from colour.colorimetry import sd_single_led, sds_and_msds_to_msds >>> sd_led_1 = sd_single_led(520, half_spectral_width=45) >>> sd_led_2 = sd_single_led(540, half_spectral_width=55) >>> sd_led_3 = sd_single_led(560, half_spectral_width=50) >>> msds = sds_and_msds_to_msds([sd_led_1, sd_led_2, sd_led_3]) >>> sd_reference = sd_single_led(535, half_spectral_width=48) >>> spectral_similarity_index(msds, sd_reference) array([ 52., 82., 18.])