TensorFlow学习(十):图像预处理

本文介绍了TensorFlow中用于图像预处理的函数,包括图像的编解码、数据转化和形状变换、颜色变换以及数据增强。重点讲解了数据类型转化、形状变换、图像翻转、颜色调整以及随机数据增强的方法,提供了相关函数的使用示例,强调了数据增强在扩充数据集和提升模型性能中的作用。
摘要由CSDN通过智能技术生成

更新时间:

2018.6.2
增加了通过 tf.image 进行数据增强的内容,非常重要,可以直接跳到第四节。

之前做的一些任务都是从.csv文件里面读取数据来处理,这些元素都已经是处理好的值了,所以很方便。但是更多时候,我们是要从硬盘上的图片直接来做处理,所以,这里需要用到一些基本的图像处理有关的函数了。OpenCV肯定是可以使用的,但是tensorflow本身也提供了一些好用的函数。
因为通过Tensorflow完成图像有关的任务太多了,所以了解一点Tensorflow中自带的图像处理有关的函数是很有必要的。
Tensorflow中内置的图像处理的函数肯定没有OpenCV那么多那么强大啦,但是仅仅是作为简单的预处理的话,完全是够用了。

主要使用的模块就是tf.image,所以首先要是先把官方文档列出来:Module: tf.image,然后接下来就是按照图片处理的顺序来分别讲解各个函数的使用。
本节的完整测试代码,可以在我的GitHub:LearningTensorFlow/12.ImageProcess/上找到。

一.图像的编解码

Ⅰ.概览

下面是tensorflow自带编解码部分的函数,这里一起列出来,但是并不会全部都详细讲,因为使用方式大同小异,在例子中只是详细讲其中一个,其他的都可以类比或者看文档写出来,实在是很简单,就不需要多花笔墨。

decode_gif(…): Decode the first frame of a GIF-encoded image to a uint8 tensor.
decode_jpeg(…): Decode a JPEG-encoded image to a uint8 tensor.
decode_png(…): Decode a PNG-encoded image to a uint8 or uint16 tensor.
decode_image(…): Convenience function for decode_gif, decode_jpeg, and decode_png.
encode_jpeg(…): JPEG-encode an image.
encode_png(…): PNG-encode an image.

在这一步,要是只是想把某个或者某些个文件读到ndarray中去,推荐更加高效的做法,就是使用matplot.image中的imread()方法,或者opencv中的方法,都是很简单无脑的。
比如在这里,我文件夹下面有个叫做“1.jpg”的文件,那么就可以用比较简单的方法得到:
这里写图片描述

二.数据转化和形状变换

这一步的目的是什么呢?首先,很多图像像素默认是int类型的,在tensorflow里面,float类型的数据更加适合处理,然后形状来说,我们知道,对于图片来说,一个网络的输入尺寸是固定的,而训练的时候图片的尺寸确不一定是固定的,所以有必要用各种方式把图片尺寸转换为固定的适合网络输入的格式。

Ⅰ.数据类型转化

convert_image_dtype(image,dtype,saturate=False,name=None)

作用:把图片元素类型,转成想要的类型,返回转换后的图片,注意,要是转成了float类型之后,像素值会在 [0,1)这个范围内
参数:
image: 图像

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值