


'''simple docstring'''

import math
import os

import cva
import numpy as np

lowerCamelCase							:       Optional[Any]  						=     2_5_5.0

def _SCREAMING_SNAKE_CASE				(A  ,			A	)	->	float:






       """simple docstring"""







       lowercase__				      =			np.mean((original - contrast) ** 2	)
       if mse == 0:
              return 100

       return 20 * math.logaa(PIXEL_MAX / math.sqrt(A	)	)

def _SCREAMING_SNAKE_CASE				()	->	None:






       """simple docstring"""







       lowercase__				      =			os.path.dirname(os.path.realpath(A	)	)
       # Loading images (original image and compressed image)
       lowercase__				      =			cva.imread(os.path.join(A  ,			'''image_data/original_image.png'''	)	)
       lowercase__				      =			cva.imread(os.path.join(A  ,			'''image_data/compressed_image.png'''	)  ,			1	)

       lowercase__				      =			cva.imread(os.path.join(A  ,			'''image_data/PSNR-example-base.png'''	)	)
       lowercase__				      =			cva.imread(
           os.path.join(A  ,			'''image_data/PSNR-example-comp-10.jpg'''	)  ,			1	)

       # Value expected: 29.73dB
       print('''-- First Test --'''	)
       print(f"PSNR value is {peak_signal_to_noise_ratio(A  ,			A	)} dB"	)

       # # Value expected: 31.53dB (Wikipedia Example)
       print('''\n-- Second Test --'''	)
       print(f"PSNR value is {peak_signal_to_noise_ratio(A  ,			A	)} dB"	)


if __name__ == "__main__":
 main()








'''simple docstring'''

from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


lowerCamelCase							:       str  						=     {'configuration_nat': ['NAT_PRETRAINED_CONFIG_ARCHIVE_MAP', 'NatConfig']}


try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 lowerCamelCase							:       Tuple  						=     [
     'NAT_PRETRAINED_MODEL_ARCHIVE_LIST',
     'NatForImageClassification',
     'NatModel',
     'NatPreTrainedModel',
     'NatBackbone',
 ]

if TYPE_CHECKING:
 from .configuration_nat import NAT_PRETRAINED_CONFIG_ARCHIVE_MAP, NatConfig

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_nat import (
      NAT_PRETRAINED_MODEL_ARCHIVE_LIST,
      NatBackbone,
      NatForImageClassification,
      NatModel,
      NatPreTrainedModel,
  )

else:
 import sys

 lowerCamelCase							:       Optional[Any]  						=     _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)




