def psnr_metric(y_true, y_pred): return psnr(y_true, y_pred, y_range)
def psnr(self, y_true, y_pred): return tf.reduce_mean(tfimg.psnr(y_true, y_pred, max_val=self.max_val))
def psnr_pred(y_true, y_pred): return image.psnr(y_true, y_pred, max_val=1.0)
img_outputs = utils.convert_to_image_domain(freq_outputs) else: img_outputs = model.predict(img_inputs) freq_outputs = utils.convert_to_frequency_domain(img_outputs) mag_outputs = np.expand_dims(np.abs(utils.join_reim(img_outputs)), -1) ssim = image.ssim(tf.convert_to_tensor(mag_outputs, dtype=tf.float32), tf.convert_to_tensor(mag_label, dtype=tf.float32), np.max(mag_label), filter_size=11, filter_sigma=1.5, k1=0.01, k2=0.03).numpy() psnr = image.psnr(tf.convert_to_tensor(mag_outputs, dtype=tf.float32), tf.convert_to_tensor(mag_label, dtype=tf.float32), np.max(mag_label)).numpy() output_file = os.path.join(model_dir, exp_str + '_test_output.h5') if os.path.exists(output_file): os.remove(output_file) file = h5py.File(output_file, "w") dataset = file.create_dataset("img_outputs", np.shape(img_outputs), data=img_outputs) dataset = file.create_dataset("freq_outputs", np.shape(freq_outputs), data=freq_outputs) dataset = file.create_dataset("mag_outputs", np.shape(mag_outputs),
def psnr(hr, sr): return tfimg.psnr(hr, sr, 1)
data_path = path + '\\data\\' log_file = path + '\\log_total.txt' # 储存计算psnr值的位置 n = 100 # 压缩100张bmp图片 lf = open(log_file, 'w') for i in range(n): bmp_file = data_path + str(i + 1) + '.bmp' # 第i+1张bmp图片 bmp_img = cv2.imread(bmp_file) lf.write('{}.jpg\n'.format(i + 1)) for qf in range(1, 101): # 对1-100范围内的qf计算bpp和psnr的值 lf.write('qf: {}\n'.format(qf)) buffer = cv2.imencode('.jpg', bmp_img, [int(cv2.IMWRITE_JPEG_QUALITY), qf])[1] bpp_val = (buffer.size * 8) / (1280 * 720) # 该图片的码率bpp jpg_img = cv2.imdecode(buffer, cv2.IMREAD_COLOR) psnr_val = image.psnr(bmp_img, jpg_img, max_val=255) # 该图片的psnr psnr_bpp_val = psnr_val / bpp_val # 遗留问题,本来打算作为其它用途,但是好像并没有用到,避免删改出现不必要的bug lf.write('psnr: {}\n'.format(psnr_val)) lf.write('bpp: {}\n'.format(bpp_val)) lf.write('psnr_bpp: {}\n'.format(psnr_bpp_val)) lf.write('\n\n') lf.close()
def PSNR(o_img, r_img_org): width, height = 1280, 720 r_img = cv2.resize(r_img_org, (width, height), cv2.INTER_CUBIC) return image.psnr(o_img, r_img, max_val=255).numpy()
def mean_psnr(gt_photos, outputs): return np.mean(image.psnr(gt_photos, outputs, 1))
def PSNR(y_true, y_pred): return tfimage.psnr(y_true, y_pred, max_val=1.0)