为什么tf.image.decode_jpeg可以解码png?

时间:2018-08-30 08:53:41

标签: python image tensorflow

今天我正在测试一些tensorflow(python)代码。这是著名的MNIST装置上的神经网络。

一切正常,所以我只是通读了代码并研究了该网络的结构。

在图像输入方面,我找到了以下代码:

image_string = tf.read_file(filename)

image_decoded = tf.image.decode_jpeg(image_string, channels=3)

该代码使用的是“ decode_jpeg”而不是“ decode_png”。而且我没有看到任何错误。

但是,我100%确定图片为PNG格式。

我用过

od -c -b 1.png

查看这些图像,它们是PNG。

那么,为什么“ decode_jpeg”可用于PNG?并可能由此引起任何潜在的问题吗?

2 个答案:

答案 0 :(得分:2)

documentation for tensorflow指出:

  

此操作还支持解码PNG和非动画GIF,因为接口相同,尽管使用tf.image.decode_image更为干净。

从本质上说,这是一个设计决策,因为只需要处理接口就可以了,而不是抛出会迫使用户使用正确的API调用的错误。

答案 1 :(得分:0)

img = tf.image.decode_png(file_bytes, channels=3) 

您可以将 decode_png 用于 png 文件