tfmri.metrics.SSIM

class SSIM(*args, **kwargs)[source]

Bases: tensorflow_mri.python.metrics.iqa_metrics.MeanMetricWrapperIQA

Structural similarity index (SSIM) metric.

The SSIM is a method for predicting the perceived quality of an image, based on its similarity to a reference image.

This metric supports 2D and 3D image inputs, y_true and y_pred. For 2D images, inputs must have rank >= 3 with shape batch_shape + [height, width, channels]. For 3D images, inputs must have rank >= 4 with shape batch_shape + [depth, height, width, channels].

Parameters
  • max_val – The dynamic range of the images (i.e., the difference between the maximum and the minimum allowed values). Defaults to 1 for floating point input images and MAX for integer input images, where MAX is the largest positive representable number for the data type.

  • filter_size – The size of the Gaussian filter. Defaults to 11.

  • filter_sigma – The standard deviation of the Gaussian filter. Defaults to 1.5.

  • k1 – Factor used to calculate the regularization constant for the luminance term, as C1 = (k1 * max_val) ** 2. Defaults to 0.01.

  • k2 – Factor used to calculate the regularization constant for the contrast term, as C2 = (k2 * max_val) ** 2. Defaults to 0.03.

  • batch_dims

    An int. The number of batch dimensions in input images. If None, it is inferred from inputs and image_dims as (rank of inputs) - image_dims - 1. If image_dims is also None, then batch_dims defaults to 1. batch_dims can always be inferred if image_dims was specified, so you only need to provide one of the two.

  • image_dims

    An int. The number of spatial dimensions in input images. If None, it is inferred from inputs and batch_dims as (rank of inputs) - batch_dims - 1. Defaults to None. image_dims can always be inferred if batch_dims was specified, so you only need to provide one of the two.

  • rank

    An int. The number of spatial dimensions. Must be 2 or 3. Defaults to tf.rank(y_true) - 2. In other words, if rank is not explicitly set, y_true and y_pred should have shape [batch, height, width, channels] if processing 2D images or [batch, depth, height, width, channels] if processing 3D images.

  • multichannel – A boolean. Whether multichannel computation is enabled. If False, the inputs y_true and y_pred are not expected to have a channel dimension, i.e. they should have shape batch_shape + [height, width] (2D) or batch_shape + [depth, height, width] (3D).

  • complex_part – The part of a complex input to be used in the computation of the metric. Must be one of 'real', 'imag', 'abs' or 'angle'. Note that real and imaginary parts, as well as angles, will be scaled to avoid negative numbers.

  • name – String name of the metric instance.

  • dtype – Data type of the metric result.

References

1

Wang, Z., Bovik, A. C., Sheikh, H. R., & Simoncelli, E. P. (2004). Image quality assessment: from error visibility to structural similarity. IEEE transactions on image processing, 13(4), 600-612.

DEPRECATED FUNCTION ARGUMENTS

Deprecated: SOME ARGUMENTS ARE DEPRECATED: (rank). They will be removed after 2022-09-01. Instructions for updating: Use argument image_dims instead.