用 tensorflow 处理图像的时候,运行如下代码:
with tf.Session() as sess:
# 解码图像
img = tf.image.decode_jpeg(img)
# 调整图片大小
img = tf.image.convert_image_dtype(img, dtype=tf.float32)
img = tf.image.resize_images(img, [400, 600], method=0)
# 显示图像
plt.imshow(img.eval())
plt.show()
# 编码图像
img_encode = tf.image.encode_jpeg(img)
报错如下:
TypeError: Input ‘image’ of ‘EncodeJpeg’ Op has type float32 that does not match expected type of uint8.
经分析,tensorflow读入图片之后,将图片数据格式经 tf.float32 变成 float32格式,需要将图片变成 uint8 之后才能编码保存:
img = tf.image.convert_image_dtype(img, dtype=tf.uint8)