viqa.fr_metrics.ssim.SSIM

class viqa.fr_metrics.ssim.SSIM(data_range=255, normalize=False, **kwargs)[source]

Calculate the structural similarity index (SSIM) between two images.

score_val

Score value of the SSIM metric.

Type:

float or None

parameters

Dictionary containing the parameters for SSIM calculation.

Type:

dict

Parameters:
  • data_range ({1, 255, 65535}, optional) – Data range of the returned data in data loading. Is used for image loading when normalize is True and for the SSIM calculation. Passed to viqa.utils.load_data() and viqa.fr_metrics.ssim.structural_similarity().

  • normalize (bool, default False) – If True, the input images are normalized to the data_range argument.

  • **kwargs (optional) – Additional parameters for data loading. The keyword arguments are passed to viqa.utils.load_data().

  • chromatic (bool, default False) – If True, the input images are expected to be RGB images. If False, the input images are converted to grayscale images if necessary.

Raises:

ValueError – If data_range is not set.

Notes

data_range for image loading is also used for the SSIM calculation if the image type is integer and therefore must be set. The parameter is set through the constructor of the class and is passed to score(). SSIM [1] is a full-reference IQA metric. It is based on the human visual system and is designed to predict the perceived quality of an image.

See also

viqa.fr_metrics.uqi.UQI

Universal quality index.

viqa.fr_metrics.msssim.MSSSIM

Multi-scale structural similarity index.

References

score(img_r, img_m, color_weights=None, **kwargs)[source]

Calculate the structural similarity index (SSIM) between two images.

Parameters:
  • img_r (np.ndarray, viqa.ImageArray, torch.Tensor, str or os.PathLike) – Reference image to calculate score against.

  • img_m (np.ndarray, viqa.ImageArray, torch.Tensor, str or os.PathLike) – Modified image to calculate score of.

  • color_weights (np.ndarray, optional) – Weights for the color channels. The array must have the same length as the number of color channels in the images. Is only effective if chromatic=True is set during initialization.

  • **kwargs (optional) – Additional parameters for the SSIM calculation. The keyword arguments are passed to viqa.fr_metrics.ssim.structural_similarity().

Returns:

score_val – SSIM score value.

Return type:

float

Raises:

ValueError – If color_weights are not set for chromatic images.

Notes

For color images, the metric is calculated channel-wise and the mean after weighting with the color weights is returned.

print_score(decimals=2)[source]

Print the SSIM score value of the last calculation.

Parameters:

decimals (int, default=2) – Number of decimal places to print the score value.

Warns:

RuntimeWarning – If score_val is not available.

export_results(path, filename)

Export the score to a csv file.

Parameters:
  • path (str) – The path where the csv file should be saved.

  • filename (str) – The name of the csv file.

Notes

The arguments get passed to viqa.utils.export_results().

load_images(img_r, img_m)

Load the images and perform checks.

Parameters:
  • img_r (np.ndarray, viqa.ImageArray, torch.Tensor, str or os.PathLike) – The reference image.

  • img_m (np.ndarray, viqa.ImageArray, torch.Tensor, str or os.PathLike) – The modified image.

Returns: