Advertisement
kantegory

Untitled

May 20th, 2019
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. import numpy as np
  2. from skimage.io import imread
  3.  
  4.  
  5. def entropy(img):
  6. freq = np.array([0 for i in range(256)])
  7.  
  8. for row in img:
  9. for px in row:
  10. freq[px] += 1
  11.  
  12. n = len(img) * len(img[0])
  13. freq = freq / n
  14. ent = -np.sum([p * np.log2(p) for p in freq if p != 0])
  15.  
  16. return ent
  17.  
  18.  
  19. def rmse(img1, img2):
  20. return np.sqrt(np.sum(np.power(img1 - img2, 2)) / img1.shape[0] / img1.shape[1])
  21.  
  22.  
  23. def psnr(img1, img2):
  24. rmse_val = rmse(img1, img2)
  25.  
  26. if rmse_val == 0: return 100
  27.  
  28. px__max = 255.0
  29.  
  30. return 20 * np.log10(px__max / np.sqrt(rmse_val))
  31.  
  32.  
  33. if __name__ == "__main__":
  34.  
  35. img = imread('image4.jpg')
  36. decoded = imread('decoded4.jpg')
  37. print(entropy(img))
  38. print(entropy(decoded))
  39. print(psnr(img, decoded))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement