python-批量调整指定目录下所有图片文件的大小

 前言:

        在很多情况下我们都需要调整图片的大小到所需要的尺寸,比如在深度学习中批量调整图片大小可以使得数据预处理更加高效,如果图片过大,训练的时候会比较慢,而且占用内存空间,图片尺寸不一样的情况下,会对模型的训练产生一定的影响,导致模型训练的不稳定。批量调整图片大小还可以使得模型更加泛化,也可以一定程度上防止过拟合。

一、代码如下:

PIL也叫做Pillow,从PIL库中导入Image模块,这个模块提供了处理图像的功能。

from PIL import Image
import osinput_folder = '1'  #要调整的图片所在的文件夹名称
output_folder = '2' # 调整后的图片所放的文件夹名称
if not os.path.exists(output_folder):os.makedirs(output_folder)
new_size = (256, 256)  # 调整为256*256for filename in os.listdir(input_folder):# Check if the file is an imageif filename.endswith('.png') or filename.endswith('.jpg'):# Open the image and resize itimg = Image.open(os.path.join(input_folder, filename))img = img.resize(new_size)# Save the resized image to the output foldernew_filename = os.path.splitext(filename)[0] + '.png'img.save(os.path.join(output_folder, new_filename))

上述代码就实现了把文件名为“1”里的图片都调整为256*256的尺寸,并将调整后的图片保存在文件名“2”里面。

二、函数介绍
1. .resize()函数

Image 类提供的 resize() 方法能够实现任意缩小和放大图像。

resize() 函数的语法格式如下:

resize(size, resample=image.BICUBIC, box=None, reducing_gap=None)
  • size:元组 (width,height),图片缩放后的尺寸;
  • resample:可选参数,指图像重采样滤波器,默认为 Image.BICUBIC;
  • box:对指定图片区域进行缩放,box 的参数值是长度为 4 的像素坐标元组,即 (左,上,右,下)。注意,被指定的区域必须在原图的范围内,如果超出范围就会报错。当不传该参数时,默认对整个原图进行缩放;
  • reducing_gap:可选参数,浮点参数值,用于优化图片的缩放效果,常用参数值有 3.0 和 5.0。
2.os.path.splitext()函数

os.path.splitext()函数是用于将文件路径分割成文件名和扩展名。

如:路径 '/path/to/picture1.jpg' 分割成文件名 '/path/to/picture1' 和扩展名 '.jpg'

 import ospath = '/path/to/picture1.jpg'filename, suffix = os.path.splitext(path)print(filename)  # /path/to/picture1print(suffix)  # .jpg
解释:new_filename = os.path.splitext(filename)[0] + '.png'

经过os.path.splitext(filename)分割后,变量new_filename里面包含两部分(/path/to/picture1, .jpg)

os.path.splitext(filename)[0]:取new_filename里面的第一个元素(因为下标从0开始),即/path/to/picture1 ,而+'.png'是指把后缀名改为.png格式的。

最后os.path.splitext(filename)[0] + '.png'即为/path/to/picture1.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/198264.shtml

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

相关文章

关于mysql字段类型为text还提示类型太短问题

MySQL中的Text字段最大长度 Text字段是MySQL中一种用来存储大量文本数据的数据类型。它能够存储比较大的数据,所以在保存文章详情内容或商品详情内容都会用到,到底有多长呢? Text字段的限制 虽然Text字段能够存储大量的文本数据&#xff0…

Depop自养号下单教程,测评环境、IP与买家资料的关键

Depop是一家总部位于英国伦敦的在线时尚市场和社交媒体平台。该平台于2011年由Simon Beckerman创立,旨在提供一个结合了时尚、创意和社交互动元素的独特购物体验。Depop已经发展成为一个备受欢迎的时尚社交应用,吸引了全球范围内的卖家和购物者。提供了一…

一文读懂3D开发工具HOOPS SDK

前言 Tech Soft 3D是全球领先的3D领域开发工具提供商,可帮助软件团队交付成功的应用程序。Tech Soft 3D成立于1996年,该公司的工具包产品为全球数亿台计算机上运行的近500个独特应用程序提供支持,已经助力SolidWorks、AutoDesk、GrabCAD、CD…

kafka 3.x 学习笔记

kafka 3.x 学习笔记 在 kafka 2.8.0 版本之前,安装使用 kafka 需要配套安装 zookeeper,但在 2.8.0 版本之后,不再需要安装 zookeeper,本次学习笔记采用的 kafka 版本为 3.0.0。 文章目录 kafka 3.x 学习笔记一、kafka 定义1 什么是…

任务管理器快捷键分享!这些知识很有用!

“我刚学习使用电脑没多久,想问问大家任务管理器这个功能有什么用处呀?在使用任务管理器时有什么快捷键能快速进入吗?感谢解答!” 在日常使用电脑的过程中,我们经常需要打开任务管理器来进行一些操作。而掌握任务管理器…

大数据SpringBoot项目|基于SpringBoot+MyBatis框架健身房管理系统的设计与实现

大数据SpringBoot项目|基于SpringBootMyBatis框架健身房管理系统的设计与实现 摘 要:本文基于Spring Boot和MyBatis框架,设计并实现了一款综合功能强大的健身房管理系统。该系统涵盖了会员卡查询、会员管理、员工管理、器材管理以及课程管理等核心功能,…

机器视觉中的图像增强与对比度调整技术

在机器视觉中,图像增强与对比度调整技术是常用的方法,旨在改善图像的质量和视觉效果,或将图像转换成更适合人眼观察或机器分析识别的形式。 图像增强技术可以针对给定图像的应用场合,有目的地强调图像的整体或局部特性&#xff0…

移动端APP自动化测试框架-UiAutomator2基础

很早以前,我用uiautomatorjava实践过Android APP自动化测试,不过今天要提的不是uiautomator,而是uiautomator2。听起来uiautomator2像是uiautomator的升级版,但是这两款框架仅仅是名字上比较相似,实际上没有任何关联。…

硬盘分区丢失?这样轻松恢复!

​“在我安装操作系统的过程中,我先把C盘(100G)进行了格式化,而我的D盘大小为297G,然而在Win PE中,所显示的仅是247G(CD盘总容量),这247G是空无一物的。让我感到困惑的是…

02、pytest环境准备

工具准备 python官网下载:https://www.python.org/pycharm官网下载:https://www.jetbrains.com.cn/en-us/pycharm/pytest官方文档:https://docs.pytest.org/en/7.4.x/python-office官网文档:http://www.python-office.com/ 参考…

MLops学习

文章目录 一、实验跟踪(Experiental Tracking)1. MLflow(1)实验跟踪(2)超参数优化Hyperopt集成Hyperopt和MLflow (3)模型注册 2. Weight & Bias 二、模型部署1. Web服务部署2. D…

新一代机器人的态势感知将成为研究的热点和难点

机器人的态势感知是指机器人对其周围环境和自身状态的感知能力。它包括对环境的感知,如感知物体的位置、形状、运动等,以及对自身状态的感知,如感知自身的位置、姿态、速度等。机器人的态势感知对于实现机器人的自主决策和行为至关重要&#…

《消息队列MyMQ》——参考RabbitMQ实现

目录 一、什么是消息队列? 二、需求分析 1)核心概念 2)核心API 3)交换机类型 4)持久化 5)网络通信 ​编辑 6)消息应答 三、 模块划分 四、创建核心类 1.ExChange 2.MSGQueue 3.Bind…

NSSCTF 文件上传漏洞题目

目录 [SWPUCTF 2021 新生赛]easyupload1.0 [SWPUCTF 2021 新生赛]easyupload2.0 [SWPUCTF 2021 新生赛]easyupload3.0 [SWPUCTF 2021 新生赛]easyupload1.0 这是一个文件上传漏洞的题目 我们的思路是上传一句话木马,用工具进行连接 先编写一句话木马 将文件后缀…

【深度学习】Stable Diffusion中的Hires. fix是什么?Hires. fix原理

文章目录 **Hires. fix****Extra noise**Upscalers Hires. fix https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features#hires-fix 提供了一个方便的选项,可以部分地以较低分辨率呈现图像,然后将其放大,最后在高分辨率下添…

【数电笔记】16-卡诺图绘制(逻辑函数的卡诺图化简)

目录 说明: 最小项卡诺图的组成 1. 相邻最小项 2. 卡诺图的组成 2.1 二变量卡诺图 2.2 三表变量卡诺图 2.3 四变量卡诺图 3. 卡诺图中的相邻项(几何相邻) 说明: 笔记配套视频来源:B站;本系列笔记并…

JVM 如何加载类的? ## JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化。

文章目录 JVM 如何加载类的?JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化。加载验证准备解析初始化 JVM 如何加载类的? JVM 类加载机制分为五个部分:加载,验…

文献速递:(第三部分)— (超声非破坏性评估中合成和增强训练数据生成与评估的最新研究进展)

文献速递:(第三部分)— (超声非破坏性评估中合成和增强训练数据生成与评估的最新研究进展) Title 题目 A review of synthetic and augmented training data for machine learning in ultrasonic non-destructive e…

iOS17桌面待办事项提醒小组件,让的iPhone变身提醒神器

在现代社会,每天都有太多的事情需要处理,而我经常发现自己在繁忙中遗漏一些重要的事项。曾经,我每次都要在纸上记下要做的事情,可事后发现,这也没能解决我的忘性问题。 直到我尝试了一个新的方式,我的iPho…

韵达单号查询,韵达快递查询,用表格导出单号的详细物流信息

批量查询韵达快递单号的物流信息,并以表格的形式导出单号的详细物流信息。 所需工具: 一个【快递批量查询高手】软件 韵达快递单号若干 操作步骤: 步骤1:运行【快递批量查询高手】软件,第一次使用的伙伴记得先注册&…