改变图片尺寸的大小使用的是 tf.image.resize_images
img_resized = tf.image.resize_images(image_data, [300, 300], method=0)
通过tf.image.resize_images函数调整图像的大小。这个函数第一个参数为原始图像,第二个和第三个分别为调整后图像的大小,method参数给出了调整图像大小的算法
method = 0 双线性插值法
method = 1 最近邻居法
method = 2 双三次插值法
method = 3 面积插值法
"""
图片 处理
by song
stay calm stay peace
"""
# matplotlib.pyplot 是一个python的画图工具。可以可视化tensorflow对图像的处理过程
import matplotlib.pyplot as plt
import tensorflow as tf
import numpy as np
# 读取图像的原始数据
image_raw_data = tf.gfile.FastGFile('/lena.jpg', 'rb').read()
with tf.Session() as sess:
# 将图像使用JPEG的格式解码从而得到图像对应的三维矩阵。Tensorflow还提供了 tf.image.decode_png函数对png格式的图像进行编码。
# 解码之后的结果为一个张量, 在使用他的取值之前需要明确调用运行的过程。
image_data = tf.image.decode_jpeg(image_raw_data)
# Decode a JPEG-encoded image to a uint8 tensor 所以这里的 image_data 已经是一个tsnsor
# 通过tf.image.resize_images函数调整图像的大小。这个函数第一个参数为原始图像,第二个和第三个分别为调整后图像的大小,
# method参数给出了调整图像大小的算法
img_resized = tf.image.resize_images(image_data, [300, 300], method=0)
# 输出调整后图像的大小,此处的结果为(300,300,?)。表示图像的大小是300*300,但是图像深度在没有明确设置之前会是问号。
print(img_resized.get_shape())
# # 如何显示改变大小以后的照片
# img_resized = np.asarray(img_resized.eval(), dtype='uint8') # 变为uint8才能显示
# # 通过pyplot可视化过程
# plt.imshow(img_resized)
# plt.show()
转载自原文链接, 如需删除请联系管理员。
原文链接:图像处理:大小调整(tf.image.resize_images),转载请注明来源!