详解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.mzph.cn/news/603171.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity编辑器Scene界面输出位置及路径

工程Asset下新建Editor文件夹; Editor文件夹下新建脚本LogPosition using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine; public class LogPosition : EditorWindow {//最终输出的数据.static string logtext;//增…

@PathVariable详解

PathVariable 用于获取URL路径中的参数值 通过 PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过PathVariable(“xxx”) 绑定到操作方法的入参中。 一般与RequestMapping(method RequestMethod.GET)一起使用 …

K8S-应用访问

1 service对象定位 2 Service 实践 手工创建Service 根据应用部署资源对象,创建SVC对象 kubectl expose deployment nginx --port80 --typeNodePortyaml方式创建Service nginx-web的service资源清单文件 apiVersion: v1 kind: Service metadata:name: sswang-ngi…

04 帧 Frame

文章目录 04 帧 Frame4.1 相机相关信息4.2 特征点提取4.2.1 特征点提取 ExtractORB()4.3 ORB-SLAM2对双目/RGBD特征点的预处理4.3.1 双目视差公式4.3.2 双目图像特征点匹配 ComputeStereoMatches()4.3.3 根据深度信息构造虚拟右目图像:ComputeStereoFromRGBD() 4.4 …

静态网页设计——环保网(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 感谢大佬的视频: https://www.bilibili.com/video/BV1BC4y1v7ZY/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术:HTMLCSSJS(…

【教学类-45-02】X-Y之间的三连减题(a-b-c=)

作品展示: 背景需求: 【教学类-45-01】X-Y之间的三连加题(abc)-CSDN博客文章浏览阅读5次。【教学类-45-01】X-Y之间的三连加题(abc)https://blog.csdn.net/reasonsummer/article/details/135436915 有了三连加怎么能没有三连减,修改参数&am…

移动通信原理与关键技术学习(第四代蜂窝移动通信系统)

前言:LTE 标准于2008 年底完成了第一个版本3GPP Release 8的制定工作。另一方面,ITU 于2007 年召开了世界无线电会议WRC07,开始了B3G 频谱的分配,并于2008 年完成了IMT-2000(即3G)系统的演进——IMT-Advanc…

shell 正则表达式RE 正则符号拓展源 以及脚本中的正则匹配 递归查找文件内容 sed过滤文件内容

目录 正则表达式拓展元字符正则判断数据类型递归查找文件内容sed 的使用 正则表达式 # 支持扩展正则表达式,即o{3}表示匹配3个字母"o"。 grep -E "o{3}" /etc/passwd # 指定使用Perl兼容的正则表达式,即\s表示匹配一个空格。 grep…

python协程asyncio的应用,async,await,loop

关于协程,asyncio,async,await,loop的概念,参照上一篇文章可迭代对象,迭代器,生成器,协程-CSDN博客 上一章我们详细的讲解了上述各个名词的概念,但是这些东西实际上该怎…

mybatisPlus CodeGenerator 代码生成

在 test 目录下新建 CodeGenerator 类,用于 mybatis-plus 自动生成 java 代码 package com.edward;import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.OutputFile; import com.baomidou.mybatisplu…

【linux】Ubuntu 22.04.3 LTS截屏

一、快捷键 交互式录屏 ShiftCtrltAltR 交互式截图 Print 对窗口进行截图 AltPrint 截图 ShiftPrint 快捷键可能取决于使用的桌面环境和个人的键盘快捷键设置。如果上述快捷键不起作用,可能需要检查系统设置中的键盘快捷键部分,以了解系统中截图的…

Hive精选10道面试题

1.Hive内部表和外部表的区别? 内部表的数据由Hive管理,外部表的数据不由Hive管理。 在Hive中删除内部表后,不仅会删除元数据还会删除存储数据, 在Hive中删除外部表后,只会删除元数据但不会删除存储数据。 内部表一旦…

【大数据】Zookeeper 数据写入与分布式锁

Zookeeper 数据写入与分布式锁 1.数据是怎么写入的2.基于 Zookeeper 实现分布式锁 1.数据是怎么写入的 无论是 Zookeeper 自带的客户端 zkCli.sh,还是使用 Python(或者其它语言)实现的客户端,本质上都是连接至集群,然…

Redis 键中冒号的用途是什么?可以使匹配查询更快吗?

Redis 键中冒号的用途是什么在Redis中,冒号(:)用作键的分隔符,它的主要作用是创建层次结构和命名空间。通过在键中使用冒号,可以将键分为多个部分,从而更好地组织和管理数据。 以下是冒号在Redis键中的用途…

Linux - Linux文件、目录、磁盘模式的知识点

概述 本系列博客一共4篇,是对Linux系统知识的查漏补缺,Linux文件、目录、磁盘模式的一次扫盲知识点,下一篇学习shell的知识点。 Linux文件权限与目录配置 1.修改文件属性与权限 以前对于文件的权限总是记不住,也记不清给什么权…

IMS基本架构

IP Multimedia Core Network Subsystem (IMS)商用已久,相对于CS domain的语音方案,IMS则是基于IETF定义的会话控制功能与多媒体传输功能通过IP-CAN实现的 全IP完整语音解决方案。 IMS能为无线和有线用户实现语音、视频、消息、数据等服务。便于运营商通过…

redis复习笔记03(小滴课堂)

Redis6常见数据结构概览 0代表存在,1代表不存在。 1表示删除成功,0表示失败。 查看类型,默认string类型。 也可以设置set类型。 list类型。 查看key的过期时间: Redis6数据结构之String类型介绍和应用场景 批量设置: …

AI与5G、IDC等成为数字经济的重要基础设施

AI与5G、IDC等已经成为数字经济的重要基础设施,它们的影响和作用不容忽视。随着技术的迅速发展,AI在各行各业都得到了广泛应用,并成为数字经济的核心驱动力之一。 首先,AI的兴起为数字经济带来了巨大的机遇。AI技术可以帮助企业从…

LiveSIPB流媒体国网B接口功能-国网B接口服务安装使用说明

LiveSIPB 国网B接口服务安装使用说明 1、服务说明1.1、安装包说明1.2、国网B接口信令服务1.3、国网B接口流媒体服务1.4、配置信令服务(LiveCMS)1.5、配置流媒体服务(LiveSMS) 2、服务运行2.1、Windows2.2、Linux 3、配置设备接入3.1、海康STATE_GRID接入示例 4、平台使用4.1、管…

【HarmonyOS】装饰器下的状态管理与页面路由跳转实现

从今天开始,博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”,对于刚接触这项技术的小伙伴在学习鸿蒙开发之前,有必要先了解一下鸿蒙,从你的角度来讲,你认为什么是鸿蒙呢?它出现的意义又是…