当前位置:   article > 正文

详解Keras:keras.preprocessing.image

keras.preprocessing.image

keras.preprocessing.image

 Keras 库中的一个模块,用于处理和增强图像数据,它提供了一些实用的函数,如图像的加载、预处理、增强等。

常用函数 

1、load_img

用于加载图像文件,并返回一个 NumPy 数组表示该图像

示例
  1. from keras.preprocessing.image import load_img,load_img,array_to_img
  2. import numpy as np
  3. #从指定路径加载图像,并将其调整为指定的大小(默认为 (224, 224))
  4. img = image.load_img('test.jpg', target_size=(224, 224))

2、img_to_array

将图像转换为 NumPy 数组。

示例
  1. from keras.preprocessing.image import load_img,load_img,array_to_img
  2. import numpy as np
  3. # 加载图像并调整大小
  4. img = image.load_img('example.jpg', target_size=(224, 224))
  5. # 将 PIL 图像转换为 numpy 数组
  6. x = image.img_to_array(img)

 3、array_to_img

将 numpy 数组或 PIL 图像转换为 PIL 图像。

示例
  1. from keras.preprocessing.image import load_img,load_img,array_to_img
  2. # 加载图像并调整大小
  3. img = load_img('example.jpg', target_size=(224, 224))
  4. # 将 PIL 图像转换为 numpy 数组
  5. x = img_to_array(img)
  6. # 将 numpy 数组转换为 PIL 图像
  7. y = array_to_img(x)

4、ImageDataGenerator 

用于数据增强的类,可以对图像进行旋转、缩放、平移、翻转等操作。

示例1
  1. # 导入Keras的ImageDataGenerator模块,用于数据增强
  2. from keras.preprocessing.image import ImageDataGenerator
  3. # 创建一个ImageDataGenerator对象,设置各种数据增强参数
  4. datagen = ImageDataGenerator(
  5. rotation_range=40, # 随机旋转的角度范围
  6. width_shift_range=0.2, # 水平平移的范围
  7. height_shift_range=0.2, # 垂直平移的范围
  8. shear_range=0.2, # 剪切强度
  9. zoom_range=0.2, # 随机缩放的范围
  10. horizontal_flip=True, # 是否进行水平翻转
  11. fill_mode='nearest' # 填充新创建像素的方法
  12. )
  13. #使用flow_from_directory方法从指定的目录中读取图像数据
  14. #并将其传递给ImageDataGenerator对象进行处理
  15. train_generator = datagen.flow_from_directory(
  16. 'path/train/data', #训练数据的目录
  17. target_size=(150, 150), #将所有图像调整为150x150大小
  18. batch_size=32, #每个批次包含32个图像
  19. class_mode='binary' #对于多分类问题使用 'categorical',对于二元分类问题使用 'binary',对于无标签问题使用 None
  20. )
  21. #使用生成器对象来训练模型
  22. model.fit_generator(
  23. train_generator,
  24. steps_per_epoch=2000, # 每个epoch需要遍历的批次数
  25. epochs=50 # 训练的总轮数
  26. )

注:

  • flow_from_directory方法中的target_size参数需要与模型输入层的大小相匹
示例2 
  1. import os
  2. from keras.preprocessing.image import ImageDataGenerator, load_img, img_to_array, array_to_img
  3. # 图像数据增强函数
  4. def ImageDataAugmentation(imageFile):
  5. # 获取图片所在的文件夹路径
  6. savePath = os.path.dirname(imageFile)
  7. # 创建一个ImageDataGenerator对象,用于进行图像数据增强
  8. datagen = ImageDataGenerator(
  9. rotation_range=40, # 随机旋转角度范围
  10. width_shift_range=0.2, # 水平平移范围
  11. height_shift_range=0.2, # 垂直平移范围
  12. shear_range=0.2, # 剪切强度
  13. zoom_range=0.2, # 缩放范围
  14. horizontal_flip=True, # 是否进行水平翻转
  15. fill_mode='nearest' # 填充模式
  16. )
  17. # 加载图片
  18. img = load_img(imageFile) # 替换为你要处理的图片路径
  19. x = img_to_array(img) # 将图片转换为numpy数组
  20. x = x.reshape((1,) + x.shape) # 重新调整数组的形状
  21. # 使用ImageDataGenerator进行图片增强
  22. i = 0
  23. for batch in datagen.flow(x, batch_size=1):
  24. i += 1
  25. y = array_to_img(batch[0])
  26. y.save(savePath+'/output_{}.jpg'.format(i)) # 保存增强后的图片
  27. if i > 20: # 生成20张增强后的图片
  28. print('finish')
  29. break
  30. # 设置要进行图像数据增强的图片路径
  31. imageFile ='/Users/Desktop/test/1.jpg'
  32. # 调用图像数据增强函数
  33. ImageDataAugmentation(imageFile)

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/572843
推荐阅读
相关标签
  

闽ICP备14008679号