Ë
    þÍ:j8!  ã                   óˆ  — d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZ d dlmZ d dlmZ  G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z  G d„ de«      Z! G d„ de«      Z" G d„ de	«      Z# G d„ de«      Z$ G d„ de«      Z% G d „ d!e«      Z&y")#é    )ÚSequence)ÚAnyÚOptionalÚUnion)ÚLiteral)ÚSpectralDistortionIndex)Ú)ErrorRelativeGlobalDimensionlessSynthesis)ÚPeakSignalNoiseRatio)ÚRelativeAverageSpectralError)Ú&RootMeanSquaredErrorUsingSlidingWindow)ÚSpectralAngleMapper)Ú*MultiScaleStructuralSimilarityIndexMeasureÚ StructuralSimilarityIndexMeasure)ÚTotalVariation)ÚUniversalImageQualityIndex)Ú_deprecated_root_import_classc            	       ó@   ‡ — e Zd ZdZ	 	 d	deded   deddfˆ fd„Zˆ xZS )
Ú*_ErrorRelativeGlobalDimensionlessSynthesiszúWrapper for deprecated import.

    >>> from torch import rand
    >>> preds = rand([16, 1, 16, 16])
    >>> target = preds * 0.75
    >>> ergas = _ErrorRelativeGlobalDimensionlessSynthesis()
    >>> ergas(preds, target).round()
    tensor(10.)

    ÚratioÚ	reduction©Úelementwise_meanÚsumÚnoneNÚkwargsÚreturnNc                 óB   •— t        dd«       t        ‰| �  d||dœ|¤Ž y )Nr	   Úimage)r   r   © ©r   ÚsuperÚ__init__)Úselfr   r   r   Ú	__class__s       €ús/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/torchmetrics/image/_deprecated.pyr"   z3_ErrorRelativeGlobalDimensionlessSynthesis.__init__   s(   ø€ ô 	&Ð&QÐSZÔ[Ü‰ÑÐD˜u°	ÑD¸VÓDó    )é   r   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úfloatr   r   r"   Ú__classcell__©r$   s   @r%   r   r      sL   ø„ ñ	ð ØFXñEàðEð ÐBÑCðEð ð	Eð
 
÷Eñ Er&   r   c                   ó´   ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 	 ddedeeee   f   deeee   f   de	d   de
eeeeef   f      d	ed
edeedf   de	d   deddfˆ fd„Zˆ xZS )Ú+_MultiScaleStructuralSimilarityIndexMeasurea	  Wrapper for deprecated import.

    >>> from torch import rand
    >>> preds = rand([3, 3, 256, 256])
    >>> target = preds * 0.75
    >>> ms_ssim = _MultiScaleStructuralSimilarityIndexMeasure(data_range=1.0)
    >>> ms_ssim(preds, target)
    tensor(0.9628)

    NÚgaussian_kernelÚkernel_sizeÚsigmar   r   Ú
data_rangeÚk1Úk2Úbetas.Ú	normalize)ÚreluÚsimpleNr   r   c
                 óP   •— t        dd«       t        ‰| �  d|||||||||	dœ	|
¤Ž y )Nr   r   )	r1   r2   r3   r   r4   r5   r6   r7   r8   r   r    )r#   r1   r2   r3   r   r4   r5   r6   r7   r8   r   r$   s              €r%   r"   z4_MultiScaleStructuralSimilarityIndexMeasure.__init__4   sH   ø€ ô 	&Ð&RÐT[Ô\Ü‰Ñð 	
Ø+Ø#ØØØ!ØØØØñ	
ð ó	
r&   )	Té   ç      ø?r   Nç{®Gáz„?ç¸…ëQ¸ž?)gÇº¸�ð¦?g×4ï8EGÒ?g÷äa¡Ö4Ó?g¼?Î?g9EGrùÁ?r9   )r(   r)   r*   r+   Úboolr   Úintr   r,   r   r   Útupler   r"   r-   r.   s   @r%   r0   r0   (   sä   ø„ ñ	ð !%Ø13Ø/2ØFXØBFØØØ#KØ5;ñ
àð
ð ˜3 ¨¡Ð-Ñ.ð
ð �U˜H U™OÐ+Ñ,ð	
ð
 ÐBÑCð
ð ˜U 5¨%°°u°Ñ*=Ð#=Ñ>Ñ?ð
ð ð
ð ð
ð �U˜C�ZÑ ð
ð Ð1Ñ2ð
ð ð
ð 
÷
ñ 
r&   r0   c                   óz   ‡ — e Zd ZdZ	 	 	 	 ddeeeeef   f   deded   deee	ee	df   f      d	e
d
dfˆ fd„Zˆ xZS )Ú_PeakSignalNoiseRatiozÿWrapper for deprecated import.

    >>> from torch import tensor
    >>> psnr = _PeakSignalNoiseRatio()
    >>> preds = tensor([[0.0, 1.0], [2.0, 3.0]])
    >>> target = tensor([[3.0, 2.0], [1.0, 0.0]])
    >>> psnr(preds, target)
    tensor(2.5527)

    Nr4   Úbaser   r   Údim.r   r   c                 óF   •— t        dd«       t        ‰| �  d||||dœ|¤Ž y )Nr
   r   )r4   rE   r   rF   r   r    )r#   r4   rE   r   rF   r   r$   s         €r%   r"   z_PeakSignalNoiseRatio.__init__\   s-   ø€ ô 	&Ð&<¸gÔFÜ‰ÑÐb J°TÀYÐTWÑbÐ[aÓbr&   )g      @g      $@r   N)r(   r)   r*   r+   r   r,   rB   r   r   rA   r   r"   r-   r.   s   @r%   rD   rD   P   s’   ø„ ñ	ð 9<ØØFXØ59ñ	cà˜%  u¨e |Ñ!4Ð4Ñ5ð	cð ð	cð ÐBÑCð		cð
 �e˜C  s¨C x¡Ð0Ñ1Ñ2ð	cð ð	cð 
÷	cñ 	cr&   rD   c                   ó>   ‡ — e Zd ZdZ	 ddedeeef   ddfˆ fd„Zˆ xZ	S )Ú_RelativeAverageSpectralErrorzíWrapper for deprecated import.

    >>> from torch import rand
    >>> preds = rand(4, 3, 16, 16)
    >>> target = rand(4, 3, 16, 16)
    >>> rase = _RelativeAverageSpectralError()
    >>> rase(preds, target)
    tensor(5326.40...)

    Úwindow_sizer   r   Nc                 ó@   •— t        dd«       t        ‰| �  dd|i|¤Ž y )Nr   r   rJ   r   r    ©r#   rJ   r   r$   s      €r%   r"   z&_RelativeAverageSpectralError.__init__t   s%   ø€ ô
 	&Ð&DÀgÔNÜ‰ÑÑ; [Ð;°FÓ;r&   ©é   ©
r(   r)   r*   r+   rA   ÚdictÚstrr   r"   r-   r.   s   @r%   rI   rI   h   ó;   ø„ ñ	ð ñ<àð<ð �s˜C�x‘.ð<ð 
÷	<ñ <r&   rI   c                   ó>   ‡ — e Zd ZdZ	 ddedeeef   ddfˆ fd„Zˆ xZ	S )Ú'_RootMeanSquaredErrorUsingSlidingWindowzøWrapper for deprecated import.

    >>> from torch import rand
    >>> preds = rand(4, 3, 16, 16)
    >>> target = rand(4, 3, 16, 16)
    >>> rmse_sw = RootMeanSquaredErrorUsingSlidingWindow()
    >>> rmse_sw(preds, target)
    tensor(0.4158)

    rJ   r   r   Nc                 ó@   •— t        dd«       t        ‰| �  dd|i|¤Ž y )Nr   r   rJ   r   r    rL   s      €r%   r"   z0_RootMeanSquaredErrorUsingSlidingWindow.__init__‰   s&   ø€ ô
 	&Ð&NÐPWÔXÜ‰ÑÑ; [Ð;°FÓ;r&   rM   rO   r.   s   @r%   rT   rT   }   rR   r&   rT   c                   ó:   ‡ — e Zd ZdZ	 dded   deddfˆ fd„Zˆ xZS )	Ú_SpectralAngleMapperzäWrapper for deprecated import.

    >>> from torch import rand
    >>> preds = rand([16, 3, 16, 16])
    >>> target = rand([16, 3, 16, 16])
    >>> sam = _SpectralAngleMapper()
    >>> sam(preds, target)
    tensor(0.5914)

    r   ©r   r   r   r   r   Nc                 ó@   •— t        dd«       t        ‰| �  dd|i|¤Ž y )Nr   r   r   r   r    ©r#   r   r   r$   s      €r%   r"   z_SpectralAngleMapper.__init__ž   s%   ø€ ô
 	&Ð&;¸WÔEÜ‰ÑÑ7 9Ð7°Ó7r&   )r   ©r(   r)   r*   r+   r   r   r"   r-   r.   s   @r%   rW   rW   ’   s;   ø„ ñ	ð ASñ8àÐ<Ñ=ð8ð ð8ð 
÷	8ñ 8r&   rW   c            	       ó>   ‡ — e Zd ZdZ	 d	deded   deddfˆ fd„Zˆ xZS )
Ú_SpectralDistortionIndexzèWrapper for deprecated import.

    >>> from torch import rand
    >>> preds = rand([16, 3, 16, 16])
    >>> target = rand([16, 3, 16, 16])
    >>> sdi = _SpectralDistortionIndex()
    >>> sdi(preds, target)
    tensor(0.0234)

    Úpr   rX   r   r   Nc                 óB   •— t        dd«       t        ‰| �  d||dœ|¤Ž y )Nr   r   )r^   r   r   r    )r#   r^   r   r   r$   s       €r%   r"   z!_SpectralDistortionIndex.__init__³   s'   ø€ ô 	&Ð&?ÀÔIÜ‰ÑÐ<˜1¨	Ñ<°VÓ<r&   )é   r   )	r(   r)   r*   r+   rA   r   r   r"   r-   r.   s   @r%   r]   r]   §   s?   ø„ ñ	ð Señ=Øð=Ø%,Ð-NÑ%Oð=Øpsð=à	÷=ñ =r&   r]   c                   ó¤   ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 	 ddedeeee   f   deeee   f   de	d   de
eeeeef   f      d	ed
ededededdfˆ fd„Zˆ xZS )Ú!_StructuralSimilarityIndexMeasurezõWrapper for deprecated import.

    >>> import torch
    >>> preds = torch.rand([3, 3, 256, 256])
    >>> target = preds * 0.75
    >>> ssim = _StructuralSimilarityIndexMeasure(data_range=1.0)
    >>> ssim(preds, target)
    tensor(0.9219)

    Nr1   r3   r2   r   r   r4   r5   r6   Úreturn_full_imageÚreturn_contrast_sensitivityr   r   c
                 óP   •— t        dd«       t        ‰| �  d|||||||||	dœ	|
¤Ž y )Nr   r   )	r1   r3   r2   r   r4   r5   r6   rc   rd   r   r    )r#   r1   r3   r2   r   r4   r5   r6   rc   rd   r   r$   s              €r%   r"   z*_StructuralSimilarityIndexMeasure.__init__Æ   sG   ø€ ô 	&Ð&HÈ'ÔRÜ‰Ñð 	
Ø+ØØ#ØØ!ØØØ/Ø(Cñ	
ð ó	
r&   )	Tr=   r<   r   Nr>   r?   FF)r(   r)   r*   r+   r@   r   r,   r   rA   r   r   rB   r   r"   r-   r.   s   @r%   rb   rb   º   sÕ   ø„ ñ	ð !%Ø/2Ø13ØFXØBFØØØ"'Ø,1ñ
àð
ð �U˜H U™OÐ+Ñ,ð
ð ˜3 ¨¡Ð-Ñ.ð	
ð
 ÐBÑCð
ð ˜U 5¨%°°u°Ñ*=Ð#=Ñ>Ñ?ð
ð ð
ð ð
ð  ð
ð &*ð
ð ð
ð 
÷
ñ 
r&   rb   c                   ó8   ‡ — e Zd ZdZdded   deddfˆ fd„Zˆ xZS )	Ú_TotalVariationzªWrapper for deprecated import.

    >>> from torch import rand
    >>> tv = _TotalVariation()
    >>> img = rand(5, 3, 28, 28)
    >>> tv(img)
    tensor(7546.8018)

    r   )Úmeanr   r   Nr   r   Nc                 ó@   •— t        dd«       t        ‰| �  dd|i|¤Ž y )Nr   r   r   r   r    rZ   s      €r%   r"   z_TotalVariation.__init__í   s#   ø€ Ü%Ð&6¸Ô@Ü‰ÑÑ7 9Ð7°Ó7r&   )r   r[   r.   s   @r%   rg   rg   â   s/   ø„ ññ8 'Ð*EÑ"Fð 8ÐZ]ð 8Ðbf÷ 8ñ 8r&   rg   c                   óR   ‡ — e Zd ZdZ	 	 	 d
dee   dee   ded   deddf
ˆ fd	„Z	ˆ xZ
S )Ú_UniversalImageQualityIndexzÞWrapper for deprecated import.

    >>> import torch
    >>> preds = torch.rand([16, 1, 16, 16])
    >>> target = preds * 0.75
    >>> uqi = _UniversalImageQualityIndex()
    >>> uqi(preds, target)
    tensor(0.9216)

    r2   r3   r   r   r   r   Nc                 óD   •— t        dd«       t        ‰| �  d|||dœ|¤Ž y )Nr   r   )r2   r3   r   r   r    )r#   r2   r3   r   r   r$   s        €r%   r"   z$_UniversalImageQualityIndex.__init__þ   s*   ø€ ô 	&Ð&BÀGÔLÜ‰ÑÐ] [¸ÈÑ]ÐV\Ó]r&   ))r<   r<   )r=   r=   r   )r(   r)   r*   r+   r   rA   r,   r   r   r"   r-   r.   s   @r%   rk   rk   ò   sb   ø„ ñ	ð &.Ø!+ØFXñ	^à˜c‘]ð^ð ˜‰ð^ð ÐBÑCð	^ð
 ð^ð 
÷^ñ ^r&   rk   N)'Úcollections.abcr   Útypingr   r   r   Útyping_extensionsr   Útorchmetrics.image.d_lambdar   Útorchmetrics.image.ergasr	   Útorchmetrics.image.psnrr
   Útorchmetrics.image.raser   Útorchmetrics.image.rmse_swr   Útorchmetrics.image.samr   Útorchmetrics.image.ssimr   r   Útorchmetrics.image.tvr   Útorchmetrics.image.uqir   Útorchmetrics.utilities.printsr   r   r0   rD   rI   rT   rW   r]   rb   rg   rk   r   r&   r%   ú<module>rz      s¸   ðÝ $ß 'Ñ 'å %å ?Ý NÝ 8Ý @Ý MÝ 6ß pÝ 0Ý =Ý GôEÐ1Zô Eô,%
Ð2\ô %
ôPcÐ0ô cô0<Ð$@ô <ô*<Ð.Tô <ô*8Ð.ô 8ô*=Ð6ô =ô&%
Ð(Hô %
ôP8�nô 8ô ^Ð"<õ ^r&   