Shortcuts

Spectral Distortion Index

Module Interface

class torchmetrics.SpectralDistortionIndex(p=1, reduction='elementwise_mean', **kwargs)[source]

Computes Spectral Distortion Index (SpectralDistortionIndex) also now as D_lambda is used to compare the spectral distortion between two images.

Parameters
  • p (int) – Large spectral differences

  • reduction (Literal[‘elementwise_mean’, ‘sum’, ‘none’]) –

    a method to reduce metric score over labels.

    • 'elementwise_mean': takes the mean (default)

    • 'sum': takes the sum

    • 'none': no reduction will be applied

  • kwargs (Any) – Additional keyword arguments, see Advanced metric settings for more info.

Example

>>> import torch
>>> _ = torch.manual_seed(42)
>>> from torchmetrics import SpectralDistortionIndex
>>> preds = torch.rand([16, 3, 16, 16])
>>> target = torch.rand([16, 3, 16, 16])
>>> sdi = SpectralDistortionIndex()
>>> sdi(preds, target)
tensor(0.0234)

References

[1] Alparone, Luciano & Aiazzi, Bruno & Baronti, Stefano & Garzelli, Andrea & Nencini, Filippo & Selva, Massimo. (2008). Multispectral and Panchromatic Data Fusion Assessment Without Reference. ASPRS Journal of Photogrammetric Engineering and Remote Sensing. 74. 193-200. 10.14358/PERS.74.2.193.

Initializes internal Module state, shared by both nn.Module and ScriptModule.

compute()[source]

Computes and returns spectral distortion index.

Return type

Tensor

update(preds, target)[source]

Update state with preds and target.

Parameters
  • preds (Tensor) – Low resolution multispectral image

  • target (Tensor) – High resolution fused image

Return type

None

Functional Interface

torchmetrics.functional.spectral_distortion_index(preds, target, p=1, reduction='elementwise_mean')[source]

Spectral Distortion Index (SpectralDistortionIndex) also now as D_lambda is used to compare the spectral distortion between two images.

Parameters
  • preds (Tensor) – Low resolution multispectral image

  • target (Tensor) – High resolution fused image

  • p (int) – Large spectral differences

  • reduction (Literal[‘elementwise_mean’, ‘sum’, ‘none’]) –

    a method to reduce metric score over labels.

    • 'elementwise_mean': takes the mean (default)

    • 'sum': takes the sum

    • 'none': no reduction will be applied

Return type

Tensor

Returns

Tensor with SpectralDistortionIndex score

Raises
  • TypeError – If preds and target don’t have the same data type.

  • ValueError – If preds and target don’t have BxCxHxW shape.

  • ValueError – If p is not a positive integer.

Example

>>> from torchmetrics.functional import spectral_distortion_index
>>> _ = torch.manual_seed(42)
>>> preds = torch.rand([16, 3, 16, 16])
>>> target = torch.rand([16, 3, 16, 16])
>>> spectral_distortion_index(preds, target)
tensor(0.0234)