-
Notifications
You must be signed in to change notification settings - Fork 59
/
Copy pathutils.py
41 lines (32 loc) · 1.45 KB
/
utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
## Learning Enriched Features for Fast Image Restoration and Enhancement
## Syed Waqas Zamir, Aditya Arora, Salman Khan, Munawar Hayat, Fahad Shahbaz Khan, Ming-Hsuan Yang, and Ling Shao
## IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI)
## https://www.waqaszamir.com/publication/zamir-2022-mirnetv2/
import numpy as np
import os
import cv2
import math
from skimage import metrics
from sklearn.metrics import mean_absolute_error
def MAE(img1, img2):
mae_0=mean_absolute_error(img1[:,:,0], img2[:,:,0],
multioutput='uniform_average')
mae_1=mean_absolute_error(img1[:,:,1], img2[:,:,1],
multioutput='uniform_average')
mae_2=mean_absolute_error(img1[:,:,2], img2[:,:,2],
multioutput='uniform_average')
return np.mean([mae_0,mae_1,mae_2])
def PSNR(img1, img2):
mse_ = np.mean( (img1 - img2) ** 2 )
if mse_ == 0:
return 100
return 10 * math.log10(1 / mse_)
def SSIM(img1, img2):
# return metrics.structural_similarity(img1, img2, data_range=1, multichannel=True)
return metrics.structural_similarity(img1, img2, data_range=1, channel_axis = -1)
def load_img(filepath):
return cv2.cvtColor(cv2.imread(filepath), cv2.COLOR_BGR2RGB)
def load_img16(filepath):
return cv2.cvtColor(cv2.imread(filepath, -1), cv2.COLOR_BGR2RGB)
def save_img(filepath, img):
cv2.imwrite(filepath,cv2.cvtColor(img, cv2.COLOR_RGB2BGR))