在张量流中导入图像

时间:2016-07-08 17:49:53

标签: python image filesystems tensorflow

我正在尝试导入图像并将其转换为张量。所有其他解决方案都建议使用filename_queue并使用tf.reader(),但我无法让它工作......因此,我只是按照基础进行。

我的桌面目录中有一个名为test.jp g的文件,我正在运行Linux环境。这是我的代码:

import tensorflow as tf

image = tf.image.decode_jpeg("~/Desktop/test.jpg", channels=1)
print(image)

正如您所看到的,一些非常简单的代码......但它输出

Tensor("DecodeJpeg:0", shape=(?, ?, 1), dtype=uint8)

这告诉我它没有正确读取文件。有什么我做错了吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

函数tf.image.decode_jpeg只构造一个图节点并将其添加到执行图中。您必须实际评估节点运行它并将其值作为numpy数组获取。请尝试以下方法:

import tensorflow as tf

image = tf.image.decode_jpeg(tf.read_file("~/Desktop/test.jpg"), channels=1)
sess = tf.InteractiveSession()
print(sess.run(image))

请注意,tf.image.decode_jpeg本身的参数应为字符串Tensor。值得庆幸的是,TensorFlow有一个用于将文件读入Tensor的操作,即tf.read_file