详解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格式的图像
相关文章:
详解Keras:keras.preprocessing.image
keras.preprocessing.image Keras 库中的一个模块,用于处理和增强图像数据,它提供了一些实用的函数,如图像的加载、预处理、增强等。 常用函数 1、load_img 用于加载图像文件,并返回一个 NumPy 数组表示该图像 示例 from ker…...
来瞅瞅Java 11都有啥新特性
第1章:引言 大家好,我是小黑!今天小黑要和咱们聊聊Java 11,这个在Java发展史上占有一席之地的版本。说起Java,咱们都知道,它是一门历史悠久又持续发展的编程语言。Java不仅因其“一次编写,到处…...
Copilot在IDEA中的应用:提升编码效率的得力助手
Copilot在IDEA中的应用:提升编码效率的得力助手 前言: 欢迎来到本篇博客,今天我们将深入探讨 GitHub Copilot 在 IntelliJ IDEA 中的应用。GitHub Copilot 是一款由 GitHub 与 OpenAI 共同开发的人工智能代码生成工具,它能够根据上下文提示…...
【Python】Excel不同sheet另存为不同CSV
我有一个excel,内有不同sheet,现在批量生成不通csv文件,并以sheet名命名,或根据sheet名调整命名。 # 读取新的Excel文件 df pd.read_excel(rD:\itm\data.xlsx, sheet_nameNone)# 遍历每个sheet,将其另存为不同的CSV文…...
软件测试|深入学习 Docker Logs
简介 Docker 是一种流行的容器化技术,它能够帮助用户将应用程序及其依赖项打包成一个可移植的容器。Docker logs 是 Docker 提供的用于管理容器日志的命令,本文将深入学习 Docker logs 的使用和管理,帮助用户更好地监测和解决容器问题。 Do…...
试除法求约数算法总结
知识概览 试除法求一个数的约数的时间复杂度是。 例题展示 题目链接 活动 - AcWing 系统讲解常用算法与数据结构,给出相应代码模板,并会布置、讲解相应的基础算法题目。https://www.acwing.com/problem/content/871/ 题解 用试除法求约数,…...
[JavaWeb玩耍日记] 数据库
mysql版本:5.7.24 使用Navicat for MySQL辅助学习(2015年版),这个在粘贴本博客的块引用内容时会有额外的不可见内容导致sql运行出问题,不过有影响的地方笔者已排除 目录 一.数据库创建 二.使用数据库与创建表 三.表内列的数据类型 四.修…...
rime中州韵小狼毫 inputShow lua Translator 输入字符透传翻译器
在 rime中州韵小狼毫 help lua Translator 中我们分享了如何使用 lua 脚本定义一个 translator,并以 五笔・拼音 为例引用了该 translator,并且达到了预期的效果。 今天,我们继续通过 lua 脚本为 rime中州韵/小狼毫 输入法打造一个 translat…...
【RockChip | RV1126】学习与开发
【RockChip | RV1126】学习与开发 文章目录 【RockChip | RV1126】学习与开发1. 资料1. 资料 您好,这是关于A191型RV1126的资料包,请您及时接收哦~链接: https://pan.baidu.com/s/1FXWVxa27Q78nI78d2QKlBQ?pwd=j7mk 提取码: j7mk 若您在开发过程中遇到技术问题,需要帮助时:…...
copilot在pycharm的应用
Copilot在PyCharm中的应用 一、引言 随着人工智能技术的飞速发展,AI在编程领域的应用也越来越广泛。Copilot,作为一款由微软开发的AI编程助手,已经引起了广大开发者的关注。它利用深度学习技术,通过分析大量开源代码,…...
HDU 2841:Visible Trees ← 容斥原理
【题目来源】http://acm.hdu.edu.cn/showproblem.php?pid2841【题目描述】 There are many trees forming a m * n grid, the grid starts from (1,1). Farmer Sherlock is standing at (0,0) point. He wonders how many trees he can see. If two trees and Sherlock are in…...
分布式数据之复制(Replication)
1.简介 1.1简介——使用复制的目的 在分布式系统中,数据通常需要被分散在多台机器上,主要为了达到以下目的: 扩展性,数据量因读写负载巨大,一台机器无法承载,数据分散在多台机器 上可以有效地进行负载均衡…...
【多线程】
文章目录 一、线程与进程的概念:二、多线程实现三、线程锁四、线程数量的设置 一、线程与进程的概念: 简单理解 假设总共有3个孩子需要喂饭,孩子每吃一口饭需要咀嚼消化一下。 多线程方案: 雇佣1个保姆,在喂A孩子吃饭…...
基于Vue开发的一个仿京东电商购物平台系统(附源码下载)
电商购物平台项目 项目完整源码下载 基于Vue开发的一个仿京东电商购物平台系统 Build Setup # csdn下载该项目源码压缩包 解压重命名为sangpinghui_project# 进入项目目录 cd sangpinghui_project# 安装依赖 npm install# 建议不要直接使用 cnpm 安装以来,会有各…...
Nginx多ip部署多站点
目录 1.修改网卡配置信息 2.修改主要配置文件nginx.conf 1.修改网卡配置信息 1)来到网卡配置文件存放目录下 cd /etc/sysconfig/network-scripts/ 2)对 ifcfg-ens33 文件进行配置修改前先进行备份 cp ifcfg-ens33 ifcfg-ens33.default 3)先修改成最小配置,使用 d…...
Unity SVN更新提交小工具
Unity SVN更新提交小工具 前言使用说明必要前提源码参数说明 感谢 前言 Unity开发时每次都要到文件夹中操作SVN,做了一个小工具能够在Editor中直接操作。 使用说明 必要前提 前提是要安装好SVN,在文件夹右键能够看到安装的SVN 源码 using System…...
听GPT 讲Rust源代码--compiler(19)
File: rust/compiler/rustc_target/src/spec/mips_unknown_linux_gnu.rs 该文件(rust/compiler/rustc_target/src/spec/mips_unknown_linux_gnu.rs)是Rust编译器针对MIPS架构上的Linux系统的目标描述文件。它的作用是定义了在这个目标上编译时的一些配置…...
redis单机部署
一、下载redis压缩包tar.gz 官网下载,现在一般用6.x以上版本 二、上传指定目录,解压缩 #假如上传到redis用户的家目录 cd /home/redis tar -zxvf redis-6.2.14.tar.gz 三、进入解压缩目录,进行编译 cd redis-6.2.14 make &&a…...
el-upload上传文件
需求:选中或拖拽文件后,使用http-request属性实现自动上传,并根据后端传回来的结果显示错误和控制fileList的显示,如果后端返回成功,则文件显示在文件列表处,如果后端返回失败,则文件列表不显示…...
算法导论复习——CHP16 贪心算法
定义 每一步都做出当前看来最优的操作。 问题引入——活动选择问题 问题描述 活动选择问题就是对给定的包含n个活动的集合S,在已知每个活动开始时间和结束时间的条件下,从中选出最多可兼容活动的子集合,称为最大兼容活动集合。 不失一般性&a…...
坐到马斯克和库克中间的湖南女人
梦瑶 发自 凹非寺量子位 | 公众号 QbitAI谁能在国宴现场坐在马斯克和库克中间?她——你可能不认识她的脸。△图源:《新闻联播》但你手上这块iPhone的玻璃屏,是她家公司做的。你开的特斯拉的车体配件,大概率也是。三星、Meta、摩托…...
不只是标定:挖掘OpenCV findCirclesGrid在工业视觉中的另类玩法与参数调优
超越标定:OpenCV findCirclesGrid在工业视觉中的高阶应用与参数调优实战 在工业视觉领域,圆形网格检测一直扮演着关键角色。传统认知中,OpenCV的findCirclesGrid函数常被简化为相机标定的辅助工具,但其底层算法蕴含的几何约束与模…...
ngx_http_read_request_header
1 定义 ngx_http_read_request_header 函数 定义在 ./nginx-1.24.0/src/http/ngx_http_request.cstatic ssize_t ngx_http_read_request_header(ngx_http_request_t *r) {ssize_t n;ngx_event_t *rev;ngx_connection_t *c;ngx_http_…...
J-Link V8变砖别慌!手把手教你用SAM-BA 2.14救活AT91SAM7S64芯片
J-Link V8救砖实战:用SAM-BA 2.14拯救AT91SAM7S64芯片全指南 当你的J-Link V8调试器突然"变砖"——LED灯熄灭、电脑无法识别、所有功能瘫痪时,那种感觉就像外科医生在手术台上突然失去所有仪器。但别急着宣布它的"死亡",…...
好用的昆明线上经营推广哪家好选
在数字化浪潮席卷的当下,昆明的企业和商家们越来越意识到线上经营推广的重要性。选择一家靠谱的线上经营推广公司,能够让企业在激烈的市场竞争中脱颖而出。那么,在昆明众多的推广公司中,哪家才是比较好的选择呢?今天&a…...
容器化自动化数据抓取平台OpenClaw-Compose部署与实战指南
1. 项目概述:一个容器化的开源自动化抓取与处理平台最近在折腾一个自动化数据抓取和处理的项目,发现了一个挺有意思的GitHub仓库:alexleach/openclaw-compose。乍一看标题,你可能会觉得这又是一个普通的Docker Compose编排文件集合…...
观察Taotoken用量看板如何精细化管控API调用成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 观察Taotoken用量看板如何精细化管控API调用成本 对于依赖大模型API进行开发的项目团队而言,成本控制与预算管理是项目…...
【力扣100题】48.乘积最大子数组
题目描述 给你一个整数数组 nums,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 测试用例的答案是一个 32 位整数。注意,一个只包含一个元素的数组的乘积就是这个…...
Android 显示框架:SurfaceFlinger与合成策略探析
1. SurfaceFlinger的核心角色解析 第一次拆解Android显示系统时,我被SurfaceFlinger这个名称逗笑了——"Surface抛洒者"?后来发现这个命名意外地准确。想象你正在布置多屏艺术展,SurfaceFlinger就是那个决定每幅画作展示位置、叠加…...
ORTC与AI融合:从实时传输到智能通信的架构演进与实践
1. 项目概述:当实时通信遇上人工智能最近几年,我身边不少做音视频通信和做AI算法的朋友,聊天时总绕不开一个话题:ORTC(Object Real-Time Communication)和AI,这两者到底能擦出什么样的火花&…...
