TensorFlow 图像预处理(二) 图像翻转,图像色彩调整

图像翻转
tf.image.flip_up_down:上下翻转
tf.image.flip_left_right:左右翻转
tf.image.transpose_image:对角线翻转
除此之外,TensorFlow还提供了随机翻转的函数,保证了样本的样本的随机性:
tf.image.random_flip_up_down:随机上下翻转图片
tf.image.random_flip_left_right:随机左右翻转图片

import matplotlib.pyplot as plt
import tensorflow as tf
import numpy as np

image_raw_data = tf.gfile.FastGFile('.//image//1.jpg','rb').read()

with tf.Session() as sess:
     img_data = tf.image.decode_jpeg(image_raw_data)
     plt.imshow(img_data.eval())
     plt.show()

     # 上下翻转
     flipped1 = tf.image.flip_up_down(img_data)
     plt.imshow(flipped1.eval())
     plt.show()
     # 左右翻转
     flipped2 = tf.image.flip_left_right(img_data)
     plt.imshow(flipped2.eval())
     plt.show()
     #对角线翻转
     transposed = tf.image.transpose_image(img_data)
     plt.imshow(transposed.eval())
     plt.show()
     
     # 以一定概率上下翻转图片。
     #flipped = tf.image.random_flip_up_down(img_data)
     # 以一定概率左右翻转图片。
     #flipped = tf.image.random_flip_left_right(img_data)

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

图像色彩调整
亮度:
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:在某范围随机调整图片饱和度
归一化:
per_image_standardization:三维矩阵中的数字均值变为0,方差变为1。在以前的版本中,它其实叫做per_image_whitening,也就是白化操作。

import matplotlib.pyplot as plt
import tensorflow as tf

image_raw_data = tf.gfile.FastGFile('.//image//1.jpg','rb').read()

with tf.Session() as sess:
     img_data = tf.image.decode_jpeg(image_raw_data)
     plt.imshow(img_data.eval())
     plt.show()

     # 将图片的亮度-0.5。
     adjusted = tf.image.adjust_brightness(img_data, -0.5)
     plt.imshow(adjusted.eval())
     plt.show()
     
     # 将图片的亮度0.5
     adjusted = tf.image.adjust_brightness(img_data, 0.5)
     plt.imshow(adjusted.eval())
     plt.show()
     # 在[-max_delta, max_delta)的范围随机调整图片的亮度。
     adjusted = tf.image.random_brightness(img_data, max_delta=0.5)
     plt.imshow(adjusted.eval())
     plt.show()
     # 将图片的对比度-5
     adjusted = tf.image.adjust_contrast(img_data, -5)
     plt.imshow(adjusted.eval())
     plt.show()
     # 将图片的对比度+5
     adjusted = tf.image.adjust_contrast(img_data, 5)
     plt.imshow(adjusted.eval())
     plt.show()
     # 在[lower, upper]的范围随机调整图的对比度。
     adjusted = tf.image.random_contrast(img_data, 0.1, 0.6)
     plt.imshow(adjusted.eval())
     plt.show()
     
     #调整图片的色相
     adjusted = tf.image.adjust_hue(img_data, 0.1)
     plt.imshow(adjusted.eval())
     plt.show()
    
     # 在[-max_delta, max_delta]的范围随机调整图片的色相。max_delta的取值在[0, 0.5]之间。
     adjusted = tf.image.random_hue(img_data, 0.5)
     plt.imshow(adjusted.eval())
     plt.show()  
     
     
     # 将图片的饱和度-5。
     adjusted = tf.image.adjust_saturation(img_data, -5)
     plt.imshow(adjusted.eval())
     plt.show()  
     

     # 在[lower, upper]的范围随机调整图的饱和度。
     adjusted = tf.image.random_saturation(img_data, 0, 5)
    
     # 将代表一张图片的三维矩阵中的数字均值变为0,方差变为1。
     adjusted = tf.image.per_image_standardization(img_data)

图片有点多,不贴图了,大家运行一下就能看到效果了。

TensorFlow 2 中,可以使用 `tf.data` 模块进行数据预处理。`tf.data` 提供了一系列用于创建高效数据输入管道的工具。下面是一个基本的数据预处理流程: 1. 加载数据:首先,你需要加载你的原始数据。这可以是来自文件、数据库或其他源的数据。根据你的数据格式,你可能需要使用不同的函数来加载数据,如 `tf.data.TextLineDataset`、`tf.data.TFRecordDataset` 等。 2. 数据转换:一旦你加载了数据,你可以使用 TensorFlow 的各种操作来转换数据。例如,你可以使用 `map()` 函数应用任何自定义的数据转换函数,也可以使用 `batch()` 函数对数据进行批处理,使用 `shuffle()` 函数对数据进行随机化等。 3. 预处理函数:如果需要进行特定的数据预处理,你可以编写一个预处理函数,并将其应用到数据上。例如,你可以编写一个函数来对图像进行缩放、裁剪或旋转。 4. 数据增强:如果你的数据集相对较小,你可以使用数据增强技术来增加样本的多样性。例如,在图像处理中,你可以应用随机裁剪、旋转、翻转等操作来生成更多的训练样本。 5. 打包成可用的格式:最后,将预处理后的数据打包成可用于训练或评估模型的格式。你可以使用 `tf.data.Dataset` 对象来表示你的数据集,并将其传递给模型进行训练或评估。 注意,以上只是一个基本的数据预处理流程示例,具体的步骤和操作可能因你的数据类型和需求而有所不同。你可以根据实际情况进行调整和扩展。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值