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 toviqa.utils.load_data()
andviqa.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 toscore()
. 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:
img_r (viqa.ImageArray) – The loaded reference image as an
viqa.utils.ImageArray
.img_m (viqa.ImageArray) – The loaded modified image as an
viqa.utils.ImageArray
.