diff --git a/Analysis/Compression_Analysis/PSNR.py b/Analysis/Compression_Analysis/PSNR.py new file mode 100644 index 000000000..1585c8cfc --- /dev/null +++ b/Analysis/Compression_Analysis/PSNR.py @@ -0,0 +1,38 @@ +import numpy as np +import math +import cv2 + +def Representational(r,g,b): + return (0.299*r+0.287*g+0.114*b) + +def calculate(img): + b,g,r = cv2.split(img) + pixelAt = Representational(r,g,b) + return pixelAt + +def main(): + + #Loading images (orignal image and compressed image) + orignal_image = cv2.imread('orignal_image.png',1) + compressed_image = cv2.imread('compressed_image.png',1) + + #Getting image height and width + height,width = orignal_image.shape[:2] + + orignalPixelAt = calculate(orignal_image) + compressedPixelAt = calculate(compressed_image) + + diff = orignalPixelAt - compressedPixelAt + error = np.sum(np.abs(diff) ** 2) + + error = error/(height*width) + + #MSR = error_sum/(height*width) + PSNR = -(10*math.log10(error/(255*255))) + + print("PSNR value is {}".format(PSNR)) + + +if __name__ == '__main__': + main() + diff --git a/Analysis/Compression_Analysis/compressed_image.png b/Analysis/Compression_Analysis/compressed_image.png new file mode 100644 index 000000000..75c41c21c Binary files /dev/null and b/Analysis/Compression_Analysis/compressed_image.png differ diff --git a/Analysis/Compression_Analysis/example_image.jpg b/Analysis/Compression_Analysis/example_image.jpg new file mode 100644 index 000000000..3a58ba3a8 Binary files /dev/null and b/Analysis/Compression_Analysis/example_image.jpg differ diff --git a/Analysis/Compression_Analysis/orignal_image.png b/Analysis/Compression_Analysis/orignal_image.png new file mode 100644 index 000000000..09a76ffa8 Binary files /dev/null and b/Analysis/Compression_Analysis/orignal_image.png differ