【数据集制作】批量jpeg压缩图像+从多个文件夹中选取第一张图进行压缩

本文主要是介绍【数据集制作】批量jpeg压缩图像+从多个文件夹中选取第一张图进行压缩,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

毕设需要制作一批压缩的图像,要求用jpeg压缩,保持分辨率不变,在这里我用的是PIL库中所包含的Image包。
先上压缩代码

import os
from PIL import Image
import threading
import timedef imgToProgressive(path):# if path isn't a image file,returnif not path.split('.')[-1:][0] in ['png', 'jpg', 'jpeg']:returnif os.path.isdir(path):return
# transform img to progressiveimg = Image.open(path)destination = path.split('.')[:-1][0] + \'_destination.'+path.split('.')[-1:][0]try:print(path.split('\\')[-1:][0], '开始转换图片')img.save(destination, "JPEG", quality=20,optimize=True, progressive=True)  # 转换就是直接另存为print(path.split('\\')[-1:][0], '转换完毕')except IOError:Image.ImageFile.MAXBLOCK = img.size[0] * img.size[1]img.save(destination, "JPEG", quality=20,optimize=True, progressive=True)print(path.split('\\')[-1:][0], '转换完毕')print('开始重命名文件')os.remove(path)os.rename(destination, path)for d, _, fl in os.walk(os.getcwd()):  # 遍历目录下所有文件for f in fl:try:imgToProgressive(d+'\\'+f)except:pass

这一部分只能压缩同一个文件夹下的图片,而原始数据集的分布是这样的
在这里插入图片描述
在这里插入图片描述
文件夹套文件夹,每一个文件夹里还有若干图片
在这里插入图片描述
因为每个图片的清晰度不同,我需要要将每一个子文件夹里面的图片进行压缩,所以先写一个脚本遍历每个子文件夹的图片,只选取第一张,再遍历外面的大文件夹。

我的代码被误删了可恶!!!!!等有时间补上吧
最后选取的图片如下:
在这里插入图片描述

这篇关于【数据集制作】批量jpeg压缩图像+从多个文件夹中选取第一张图进行压缩的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/634929

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

C#如何去掉文件夹或文件名非法字符

《C#如何去掉文件夹或文件名非法字符》:本文主要介绍C#如何去掉文件夹或文件名非法字符的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#去掉文件夹或文件名非法字符net类库提供了非法字符的数组这里还有个小窍门总结C#去掉文件夹或文件名非法字符实现有输入字

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据