viqa.fr_metrics.msssim.MSSSIM

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

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

score_val

MS-SSIM score value of the last calculation.

Type:

float

parameters

Dictionary containing the parameters for MS-SSIM calculation.

Type:

dict

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

  • 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.

    Note

    Color images can be used, but it is unclear how the called implementation piq.multi_scale_ssim() handles the color channels.

Raises:

ValueError – If data_range is not set.

Warning

This metric is not yet tested. The metric should be only used for experimental purposes.

Notes

For more information on the MS-SSIM metric, see [1].

See also

viqa.fr_metrics.uqi.UQI

Universal quality index (UQI) between two images.

viqa.fr_metrics.ssim.SSIM

Structural similarity index (SSIM) between two images.

References

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

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

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

  • img_m (np.ndarray or Tensor or str or os.PathLike) – Distorted image to calculate score of.

  • dim ({0, 1, 2}, optional) – MS-SSIM for 3D images is calculated as mean over all slices of the given dimension.

  • im_slice (int, optional) – If given, MS-SSIM is calculated only for the given slice of the 3D image.

  • **kwargs (optional) – Additional parameters for MS-SSIM calculation. The keyword arguments are passed to piq.multi_scale_ssim(). See the documentation under [2].

  • kernel_size (int, default=11) – The side-length of the sliding window used in comparison. Must be an odd value.

  • kernel_sigma (float, default=1.5) – Sigma of normal distribution.

  • reduction (str, default='mean') – Specifies the reduction type: ‘none’, ‘mean’ or ‘sum’.

  • scale_weights (list, default=[0.0448, 0.2856, 0.3001, 0.2363, 0.1333]) – Weights for different scales.

  • k1 (float, default=0.01) – Algorithm parameter, K1 (small constant, see [3]).

  • k2 (float, default=0.03) – Algorithm parameter, K2 (small constant, see [3]). Try a larger K2 constant (e.g. 0.4) if you get a negative or NaN results.

See also

See viqa.fr_metrics.ssim.structural_similarity() for more information

Returns:

score_val – MS-SSIM score value.

Return type:

float

Raises:

ValueError – If invalid dimension given in dim. If images are neither 2D nor 3D. If images are 3D, but dim is not given. If im_slice is given, but not an integer.

Warns:

RuntimeWarning – If dim or im_slice is given for 2D images.

If im_slice is not given, but dim is given for 3D images, MS-SSIM is calculated for the full volume.

Notes

For 3D images if dim is given, but im_slice is not, the MS-SSIM is calculated for the full volume of the 3D image. This is implemented as mean of the MS-SSIM values of all slices of the given dimension. If dim is given and im_slice is given, the MS-SSIM is calculated for the given slice of the given dimension (represents a 2D metric of the given slice).

References

print_score(decimals=2)[source]

Print the MSSSIM 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: