Remove empty folder in analysis/compression_analysis (#897)
* Add compression_analysis removing analysis/compression_analysis to just compression_analysis * Delete PSNR-example-base.png * Delete PSNR-example-comp-10.jpg * Delete compressed_image.png * Delete example_image.jpg * Delete example_wikipedia_image.jpg * Delete original_image.png * Delete psnr.py
This commit is contained in:
40
compression_analysis/psnr.py
Normal file
40
compression_analysis/psnr.py
Normal file
@@ -0,0 +1,40 @@
|
||||
"""
|
||||
Peak signal-to-noise ratio - PSNR - https://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio
|
||||
Soruce: https://tutorials.techonical.com/how-to-calculate-psnr-value-of-two-images-using-python/
|
||||
"""
|
||||
|
||||
import math
|
||||
import os
|
||||
|
||||
import cv2
|
||||
import numpy as np
|
||||
|
||||
def psnr(original, contrast):
|
||||
mse = np.mean((original - contrast) ** 2)
|
||||
if mse == 0:
|
||||
return 100
|
||||
PIXEL_MAX = 255.0
|
||||
PSNR = 20 * math.log10(PIXEL_MAX / math.sqrt(mse))
|
||||
return PSNR
|
||||
|
||||
|
||||
def main():
|
||||
dir_path = os.path.dirname(os.path.realpath(__file__))
|
||||
# Loading images (original image and compressed image)
|
||||
original = cv2.imread(os.path.join(dir_path, 'original_image.png'))
|
||||
contrast = cv2.imread(os.path.join(dir_path, 'compressed_image.png'), 1)
|
||||
|
||||
original2 = cv2.imread(os.path.join(dir_path, 'PSNR-example-base.png'))
|
||||
contrast2 = cv2.imread(os.path.join(dir_path, 'PSNR-example-comp-10.jpg'), 1)
|
||||
|
||||
# Value expected: 29.73dB
|
||||
print("-- First Test --")
|
||||
print(f"PSNR value is {psnr(original, contrast)} dB")
|
||||
|
||||
# # Value expected: 31.53dB (Wikipedia Example)
|
||||
print("\n-- Second Test --")
|
||||
print(f"PSNR value is {psnr(original2, contrast2)} dB")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user