1. 图像显示、解码、写入
image_data = tf.image.decode_jpeg(image_raw_data) 解码原始图像,解码输出是tensor
image_data.eval() 对解码后tensor转换为ndarray, 显示和写入图像时均需要转换为ndarray
#--coding--:utf-8
import tensorflow as tf
import matplotlib.pyplot as plt
# 读取图像的原始数据
image_raw_data = tf.gfile.FastGFile('./0302test/1.jpg', 'rb').read()
with tf.Session() as sess:
# 将原始数据解码成多维矩阵
img_data = tf.image.decode_jpeg(image_raw_data)
print(img_data.eval()) #decode输出是Tensor,eval后是ndarray
plt.imshow(img_data.eval())
plt.show() #显示
# 将图像的矩阵编码成图像并存入文件
encoded_image = tf.image.encode_jpeg(img_data)
with tf.gfile.GFile('./0302test/output.jpg', 'wb') as f:
f.write(encoded_image.eval())
2. 对图像数据处理,方便修改
# 将图像数据的类型转为实数类型,便于对图像进行处理
#归一化,转换为浮点数据
img_data = tf.image.convert_image_dtype(img_data, dtype=tf.float32)
print(img_data.eval())