Tensorflow图像调整大小
程序员文章站
2022-05-24 11:21:54
...
一般来说,网络上获取的图像大小不固定,但神经网络输入节点的个数是固定的,所以在将图像的像素作为输入提供给神经网络之前,需要先将图像的大小统一。
import matplotlib.pyplot as plt
import tensorflow as tf
#读入图像的原始数据
image_raw_data = tf.gfile.FastGFile("F:/input.jpeg", 'rb').read()
with tf.Session() as sess:
#将图像使用jpeg的格式解码从而得到图像对应的三维矩阵,解码之后的结果为一个张量
img_data = tf.image.decode_jpeg(image_raw_data)
#输出解码之后的三维矩阵
#print (img_data.eval())
#使用pyplot工具可视化得到的图像
plt.imshow(img_data.eval())
plt.show()
#调整图像大小
resized = tf.image.resize_images(img_data,[300, 300], method=0)
#print (resized.eval())
#image.encode_png函数接受的数据类型为uint8,因此需要转换数据类型
retype = tf.cast(resized, tf.uint8)
#打印调整格式后的图像,直接绘制转换数据类型前的数据即float数据会报错
plt.imshow(retype.eval())
plt.show()
#重新编码图像
encoder_image = tf.image.encode_png(retype)
with tf.gfile.GFile("F:/output.png", 'wb') as f:
f.write(encoder_image.eval())
如下为在Jupyter中编码的记录: