def measure_UIQMs(dir_name, im_res=(256, 256)): paths = sorted(glob(join(dir_name, "*.*"))) uqims = [] for img_path in paths: im = Image.open(img_path).resize(im_res) uiqm = getUIQM(np.array(im)) uqims.append(uiqm) return np.array(uqims)
def index_results(dist_filelist, ref_filelist): psnr_list = [] ssim_list = [] uiqm_list = [] for dist_file in dist_filelist: #遍历 dist_file_dir = os.path.join(dist_path, dist_file) #参考文件绝对路径 if os.path.isdir(dist_file_dir): #如果是文件夹,跳过 continue dist_img = scipy.misc.imread(dist_file_dir, flatten=True).astype(numpy.float32) #filename = os.path.splitext(dist_file)[0] + os.path.splitext(dist_file)[1] #ref filename filename = os.path.splitext(dist_file)[0] + '.jpg' #ref filename ref_img = scipy.misc.imread(ref_path + '\\' + filename, flatten=True).astype( numpy.float32) #读取参考图像对应的测试图像 psnr_data = psnr.psnr(ref_img, dist_img) #psnr指标 ssim_data = ssim.ssim_exact(ref_img / 255, dist_img / 255) #ssim指标 dist_img = cv2.imread(dist_path + '\\' + os.path.splitext(dist_file)[0] + '.jpg') #UIQM指标 uiqm_data = uqim_utils.getUIQM(dist_img) #UIQM print("img:" + str(filename) + " psnr:" + str(psnr_data) + " ssim:" + str(ssim_data) + " UIQM:" + str(uiqm_data)) data = str(filename) + " psnr:" + str(psnr_data) + " ssim:" + str( ssim_data) + " UIQM:" + str(uiqm_data) psnr_list.append(psnr_data) ssim_list.append(ssim_data) uiqm_list.append(uiqm_data) average = "psnr_average:" + str( sum(psnr_list) / len(psnr_list)) + " ssim_average:" + str( sum(ssim_list) / len(ssim_list)) + " UIQM:" + str( sum(uiqm_list) / len(uiqm_list)) return average
dist_img = scipy.misc.imread(dist_file_dir, flatten=True).astype(numpy.float32) #filename = os.path.splitext(dist_file)[0] + os.path.splitext(dist_file)[1] #ref filename filename = os.path.splitext(dist_file)[0] + '.png' #ref filename ref_img = scipy.misc.imread(ref_path + '\\' + filename, flatten=True).astype( numpy.float32) #读取参考图像对应的测试图像 psnr_data = psnr.psnr(ref_img, dist_img) #psnr指标 ssim_data = ssim.ssim_exact(ref_img / 255, dist_img / 255) #ssim指标 dist_img = cv2.imread(dist_path + '\\' + os.path.splitext(dist_file)[0] + '.png') #UIQM指标 uiqm_data = uqim_utils.getUIQM(dist_img) #UIQM print("img:" + str(filename) + " psnr:" + str(psnr_data) + " ssim:" + str(ssim_data) + " UIQM:" + str(uiqm_data)) data = str(filename) + " psnr:" + str(psnr_data) + " ssim:" + str( ssim_data) + " UIQM:" + str(uiqm_data) psnr_list.append(psnr_data) ssim_list.append(ssim_data) uiqm_list.append(uiqm_data) average = "psnr_average:" + str( sum(psnr_list) / len(psnr_list)) + " ssim_average:" + str( sum(ssim_list) / len(ssim_list)) + " UIQM:" + str( sum(uiqm_list) / len(uiqm_list)) print(average)
import cv2 import uqim_utils #img_path = r'D:\github\cv-paper-reproduction\PSNR_test\An Underwater Image Enhancement Benchmark Dataset and Beyond\result\4 Original Image.jpg' #img_path = r'D:\github\cv-paper-reproduction\PSNR_test\InputImages\real1.jpg' img_path = r'D:\github\video-quality\102_img_.png' original = cv2.imread(img_path) UQIM_value = uqim_utils.getUIQM(original) print(round(UQIM_value,3))