当前位置: 首页 > news >正文

详解Keras:keras.preprocessing.image

keras.preprocessing.image

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

常用函数 

1、load_img

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

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

2、img_to_array

将图像转换为 NumPy 数组。

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

 3、array_to_img

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

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

4、ImageDataGenerator 

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

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

注:

  • flow_from_directory方法中的target_size参数需要与模型输入层的大小相匹
示例2 
from keras.preprocessing.image import ImageDataGenerator,load_img, img_to_array# 创建一个ImageDataGenerator实例
datagen = ImageDataGenerator(rotation_range=40,  # 随机旋转的角度范围width_shift_range=0.2,  # 水平平移的范围height_shift_range=0.2,  # 垂直平移的范围shear_range=0.2,  # 剪切强度zoom_range=0.2,  # 随机缩放的范围horizontal_flip=True,  # 是否进行水平翻转fill_mode='nearest'  # 填充新创建像素的方法
)# 加载图像数据
img = load_img('input.jpg')
x = img_to_array(img)  # 将其转换为NumPy数组的形状(3, 150, 150)
x = x.reshape((1,) + x.shape)  # 将其重新整形为(1, 3, 150, 150)# 使用ImageDataGenerator生成增强后的图像
i = 0
for batch in datagen.flow(x, batch_size=1, save_to_dir='preview', save_prefix='img', save_format='jpeg'):i += 1if i > 20:break  #增强图像数量20张

注:

  • save_to_dir:指定保存生成的图像的目录。如果该目录不存在,Keras将自动创建它。
  • save_prefix:指定保存的图像的前缀。每个生成的图像都将以其前缀命名。
  • save_format:指定保存的图像的格式。默认情况下,Keras将保存为JPEG格式的图像
http://www.lryc.cn/news/275058.html

相关文章:

  • 来瞅瞅Java 11都有啥新特性
  • Copilot在IDEA中的应用:提升编码效率的得力助手
  • 【Python】Excel不同sheet另存为不同CSV
  • 软件测试|深入学习 Docker Logs
  • 试除法求约数算法总结
  • [JavaWeb玩耍日记] 数据库
  • rime中州韵小狼毫 inputShow lua Translator 输入字符透传翻译器
  • 【RockChip | RV1126】学习与开发
  • copilot在pycharm的应用
  • HDU 2841:Visible Trees ← 容斥原理
  • 分布式数据之复制(Replication)
  • 【多线程】
  • 基于Vue开发的一个仿京东电商购物平台系统(附源码下载)
  • Nginx多ip部署多站点
  • Unity SVN更新提交小工具
  • 听GPT 讲Rust源代码--compiler(19)
  • redis单机部署
  • el-upload上传文件
  • 算法导论复习——CHP16 贪心算法
  • 【霹雳吧啦】手把手带你入门语义分割の番外12:U2-Net 源码讲解(PyTorch)—— 网络的搭建
  • phpstudy面板Table ‘mysql.proc‘ doesn‘t exist解决办法
  • 网安入门09-Sql注入(绕过方法梳理)
  • 本地计算机 上的 My5OL808 服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止
  • 2023机器人行业总结,2024机器人崛起元年(具身智能)
  • go 语言中的类型判断
  • java基于ssm的房源管理系统+vue论文
  • RH850P1X芯片学习笔记-A/D Converter (ADCF)
  • 38 调优kafka
  • java推荐系统:好友推荐思路
  • java: 写入数据到HBase