tensorflow学习笔记——图像数据处理

本文介绍了使用TensorFlow进行图像预处理的各种方法,包括图像编码解码、大小调整、裁剪填充、翻转、色彩调整和标准化,以适应神经网络模型的输入需求,提升识别准确性。同时探讨了随机翻转和色彩调整对训练模型的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

喜欢摄影的盆友都知道图像的亮度,对比度等属性对图像的影响是非常大的,相同物体在不同亮度,对比度下差别非常大。然而在很多图像识别问题中,这些因素都不应该影响最后的结果。所以本文将学习如何对图像数据进行预处理使训练得到的神经网络模型尽可能小地被无关因素所影响。但与此同时,复杂的预处理过程可能导致训练效率的下降。为了减少预处理对于训练速度的影响,后面也学习多线程处理输入数据的解决方案。

  在大部分图像识别问题中,通过图像预处理过程可以提高模型的准确率。当然在TensorFlow中提供了几类图像处理函数,下面一一学习。

1,图像编码处理

  我们知道一张RGB色彩模式的图像可以看成一个三维矩阵,矩阵中的每个数表示了图像上不同位置,不同颜色的亮度。然而图像在存储时并不是直接记录这些矩阵中的数字,而是记录经过压缩编码之后的结果。所以要将一张图像还原成一个三维矩阵,需要解码的过程。TensorFlow提供了对JPEG和png格式图像的编码/解码函数。以下代码示范了如何使用TensorFlow中对 JPEG 格式图像的编码/解码函数。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

#_*_coding:utf-8_*_

# matplotlib.pyplot 是一个python 的画图工具。下面用这个来可视化

import matplotlib.pyplot as plt

import tensorflow as tf

 

# 读取图像的原始数据

picture_path = 'kd.jpg'

image_raw_data = tf.gfile.FastGFile(picture_path, 'rb').read()

 

with tf.Session() as sess:

    # 将图像使用JPEG的格式解码从而得到图像对应的三维矩阵

    # TensorFlow提供了 tf.image.decode_png 函数对png格式的图像进行解码

    # 解码之后的结果为一个张量,在使用它的取值之前需要明确调用运行的过程

    img_data = tf.image.decode_jpeg(image_raw_data)

 

    # 输出解码之后的三维矩阵

    # print(img_data.eval())

    '''

        # 输出解码之后的三维矩阵如下:

    [[[4   6   5]

      [4   6   5]

     [4   6   5]

    ...

    [35 29  31]

    [26  20  24]

    [25 20 26]]]

    '''

     

 

    # 使用 pyplot工具可视化得到的图像

    plt.imshow(img_data.eval())

    plt.show()

 

    # 将数据的类型转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值