图像数据处理tensorflow
tensorflow提供了几类简单的图像数据处理函数,下面我们会对其做一些简单的介绍。
图像编解码处理
一副RGB色彩模式的图像可以看成是一个三维矩阵, 矩阵中每一个数都代表了图像上的不同位置、不同颜色的亮度,但是图像在存储的时候并没有直接记录这些矩阵中的数字,而是记录了经过压缩编码之后的结果,所以要通过解码把一副图像还原成一个三维矩阵。Tensorflow提供了一些函数可以对一些图像进行编码/解压操作,以下的代码就是对一个.jpg格式的图像进行解码,用到的函数是image.decode_jpeg()函数:
decode_jpeg函数为jpeg(jpg)图片解码的过程,对应的encode_jpeg函数为编码过程,编码后将图片重命名写入到指定的路径下。
翻转图像
在数据增强的过程中,我们最先使用的是image.random_flip_left_right()函数对图像进行随机的左右翻转,这是一个image.py中的函数在实验当中,如果是要收集更多的数据集无疑是增加了存储开销,我们可以通过对图片进行翻转来增强我们的数据集,从而达到更好的实验效果,下面是我们的代码展示:
可以看到图片左右翻转了一下,除此之外,tensorflow还有其它的翻转方式,比如上下翻转函数:flip_up_down(image);对角线翻转:transpose_image(iamge)
图像色彩调整
数据增强的过程中,在进行随机翻转图像处理之后我们继续进行了图像亮度的调整,这项工作是通过image.random_brightness()函数进行的,max_delta是我们可以设置的亮度值。
此外色彩的调整还包括亮度、对比度、饱和度等多个方面,以下都是一些相关的函数:
tf.image.adjust_brightness:调整图片亮度
tf.image.random_brightness:在某范围随机调整图片亮度
对比度:
tf.image.adjust_contrast:调整图片对比度
tf.image.random_contrast:在某范围随机调整图片对比度
色相:
tf.image.adjust_hue:调整图片色相
tf.image.random_hue:在某范围随机调整图片色相
饱和度:
tf.image.adjust_saturation:调整图片饱和度
tf.image.random_saturation:在某范围随机调整图片饱和度
图像标准化处理
在数据增强的过程中,最后一步是图像的标准化处理,图像标准化在tensorflow中指的是把图像的亮度均值设置为0,方差为1,tensorflow中提供了一个函数来实现这个操作,那就是image.per_image_standardization(),使用这个函数的时候只要把解码后或者进行完其它处理的图像数据传入即可。
图像大小的调整
在实际应用中,我们更多的时候需要输入的图片保持大小一样。Image.resize_images()函数可以用于调整图像大小,在使用该函数时,可以通过参数选择4种不同的图像大小调整算法。
关注小鲸融创,一起深度学习金融科技