Tensorflow图像评估一个通道

时间:2019-05-01 10:35:37

标签: python tensorflow keras rgb

我正在将Keras与Tensorflow后端一起使用,并希望评估两个图像之间的PSNR。我可以在所有三个RGB通道上进行评估,如下所示:

def psnr(hr, sr):
    return tf.image.psnr(hr, sr, max_val=255)

使用tensorflow(you don't compare strings with ==

但是我该怎么做才能仅在第一个渠道上进行评估?我假设我需要以某种方式从张量中提取这些值。在python中,通常可以执行类似hr [:, 0,0]的操作,但这显然在这里不起作用。

1 个答案:

答案 0 :(得分:0)

im1 = tf.image.convert_image_dtype(np.random.randn(64,64,3), tf.float32)
im2 = tf.image.convert_image_dtype(np.random.randn(64,64,3), tf.float32)

psnr = tf.image.psnr(tf.expand_dims(im1[:,:,0], 2), 
                     tf.expand_dims(im2[:,:,0], 2), max_val=255)

with tf.Session() as sess:
    print (sess.run(psnr))

使用im1[:,:,0]获取第一个频道,并使用h x w x 1添加一个频道,将其重塑为expand_dims

相关问题