import tensorflow as tf
import numpy as np
import time
start = time.clock()
def read_img(path):
return tf.image.decode_image(tf.read_file(path))
def psnr(tf_img1, tf_img2):
return tf.image.psnr(tf_img1, tf_img2, max_val=255)
def ssim(tf_img1, tf_img2):
return tf.image.ssim(tf_img1, tf_img2, max_val=255)
def main(a, b):
# t1 = read_img('./Data/00001_00_0.1s_gt.png') #Clean Image
# t2 = read_img('./Data/00001_00_0.1s_out_optimized.png') #Noise Image
t1 = read_img(a)
t2 = read_img(b)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
p = sess.run(psnr(t1, t2))
s = sess.run(ssim(t1, t2))
return p, s
path1 = './images/test1/' # 指定输出结果文件夹
path2 = './images/test2/' # 指定原图文件夹
list_psnr = []
list_ssim = []
file = open(r'计算结果.txt', mode='w', encoding='utf-8')
for i in range(81, 101):
print('第%s张图片' % i)
if i == 100:
a = path1 + str(i) + '.png'
b = path2 + str(i) + '.png'
else:
a = path1 + '0' + str(i) + '.png'
b = path2 + '0' + str(i) + '.png'
p , s = main(a, b)
list_ssim.append(s)
list_psnr.append(p)
file.write('第%s张图片:' % i + '\n')
file.write('psnr, {:.5f}'.format(p) + '\n')
file.write('ssim, {:.5f}'.format(s) + '\n')
elapsed = (time.clock() - start)
file.write("\n")
file.write("汇总:\n")
file.write('平均PSNR, {:.5f}'.format(np.mean(list_psnr)) + '\n')
file.write('平均SSIM, {:.5f}'.format(np.mean(list_ssim)) + '\n')
file.write('Time used, {:.5f}'.format(elapsed) + '\n')
file.close()
批量计算PSNR和SSIM
最新推荐文章于 2024-03-20 15:41:26 发布
本文介绍如何使用TensorFlow计算图像间的峰值信噪比(PSNR)和结构相似性指数(SSIM),通过读取测试图片并运行在指定文件夹中的图像对,计算并记录每张图片的平均PSNR和SSIM,展示了在81-100张图片中的性能指标和总耗时。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
TensorFlow-v2.15
TensorFlow
TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型


1053

被折叠的 条评论
为什么被折叠?



