
'''simple docstring'''





from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_torch_available,
)


UpperCAmelCase            = {
    "configuration_align": [
        "ALIGN_PRETRAINED_CONFIG_ARCHIVE_MAP",
        "AlignConfig",
        "AlignTextConfig",
        "AlignVisionConfig",
    ],
    "processing_align": ["AlignProcessor"],
}

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						UpperCAmelCase            = [
						    "ALIGN_PRETRAINED_MODEL_ARCHIVE_LIST",
						    "AlignModel",
						    "AlignPreTrainedModel",
						    "AlignTextModel",
						    "AlignVisionModel",
						]

if TYPE_CHECKING:
						from .configuration_align import (
						    ALIGN_PRETRAINED_CONFIG_ARCHIVE_MAP,
						    AlignConfig,
						    AlignTextConfig,
						    AlignVisionConfig,
						)
						from .processing_align import AlignProcessor

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_align import (
												    ALIGN_PRETRAINED_MODEL_ARCHIVE_LIST,
												    AlignModel,
												    AlignPreTrainedModel,
												    AlignTextModel,
												    AlignVisionModel,
												)

else:
						import sys

						UpperCAmelCase            = _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)







"""simple docstring"""





import math
import os

import cva
import numpy as np

_lowercase						   =     2_55.0

def 		lowerCAmelCase				(			lowerCamelCase   ,      lowerCamelCase		):
						'''simple docstring'''


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

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

def 		lowerCAmelCase				(			):
						'''simple docstring'''


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

						snake_case__							:       Optional[Any]				      =       cva.imread(os.path.join(lowerCamelCase   ,      '''image_data/PSNR-example-base.png'''		)		)
						snake_case__							:       Tuple				      =       cva.imread(
						    os.path.join(lowerCamelCase   ,      '''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(lowerCamelCase   ,      lowerCamelCase		)} dB'''		)

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


if __name__ == "__main__":
							main()


