转载:https://blog.csdn.net/cunyizhang/article/details/78980880
图像预处理
结合实战Google深度学习框架和博客添加了自己总结的注释、笔记。
- 图像读取
- tf.gfile.FastGFile(“/path/to/picture”, ‘r’).read()
- 图像格式的编码解码 :图像不直接记录图像上的不同位置,不同颜色的亮度。而是记录压缩编码之后的结果。所以要还原成三维矩阵,需要解码。以下为对jpeg格式图像编码/解码函数:
- tf.image.decode_jpeg() #解码
- tf.image.encode_jpeg() #编码
- print (img_data.eval()) #输出解码之后的三维矩阵
- encoded_image = tf.image.encode_jpeg(img_data)
with tf.gfile.GFile(“pictures/output.jpeg”,”wb”) as f:
f.write(encoded_image.eval()) #编码之后保存 - tf.image.convert_image_dtype(img_data, dtype = tf.float.32) #数据类型转化成实数
- 图像大小调整
- tf.image.resize_images(image,height,width,method)
- method: 0-双线性插值 1-最近邻居法 2-双三次插值法 3-面积差值法
- tf.image.resize_image_with_crop_pad 自动裁剪或者填充(都是操作图片中间部分)
- tf.image.central_crop(img_data, 0.5) #按比例调整图像大小,第二个参数为(0,1]的实数。
- tf.image.crop_to_bounding_box() #裁剪给定区域
- tf.image.pad_to_bounding_box() #填充给定区域
- print(img_data