Dictionary containing the parameters for VIFp 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 VIFp 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.vif_p() 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.
Calculate the visual information fidelity in pixel domain (VIFp) 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) – VIFp for 3D images is calculated as mean over all slices of the given
dimension.
im_slice (int, optional) – If given, VIFp is calculated only for the given slice of the 3D image.
**kwargs (optional) – Additional parameters for VIFp calculation. The keyword arguments are passed
to piq.vif_p(). See the documentation under [2].
sigma_n_sq (float, default=2.0) – HVS model parameter (variance of the visual noise). See [3].
reduction (str, default='mean') – Specifies the reduction type: ‘none’, ‘mean’ or ‘sum’.
Returns:
score_val – VIFp 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, VIFp is
calculated for the full volume.
Notes
For 3D images if dim is given, but im_slice is not, the VIFp is
calculated for the full volume of the 3D image. This is implemented as mean of
the VIFp values of all slices of the given dimension. If dim is given and
im_slice is given, the VIFp is calculated for the given slice of the given
dimension (represents a 2D metric of the given slice).