### Python从文件夹抽取图片另存的方法 在处理大规模图像数据集时,自动化地筛选、复制和保存图片是一项常见的需求。本文将详细介绍如何利用Python语言实现这一功能,并提供了一个具体的示例代码及其解析。 #### 一、理解需求 我们需要明确任务的目标:从指定路径下的多个子文件夹中抽取特定条件的图片,并将其复制到新的路径中对应的子文件夹内。例如,本例中的目标是从AID数据集中选择编号为奇数的图片并将其另存到新的测试集文件夹中。 #### 二、准备工作 1. **环境搭建**: - 安装Python(推荐3.x版本)。 - 安装必要的库:`PIL`(Pillow),这是一个用于处理图像的强大库。可以通过命令`pip install pillow`进行安装。 2. **数据准备**: - 准备好需要处理的原始数据集。 - 明确数据集的结构以及图片的命名规则。例如,在本例中,图片按照`<类别>_<编号>.jpg`的格式命名。 #### 三、核心代码详解 接下来,我们将逐行分析提供的示例代码: ```python from PIL import Image import os import glob def read_image(cwd, newpath): for roots, dirs, files in os.walk(cwd): # 遍历指定目录及其子目录 print(dirs) # 输出当前目录下的所有子目录名称 for i in dirs: # 对每个子目录进行操作 print(i) os.chdir(cwd + i) # 改变当前工作目录至子目录 for pic in glob.glob('*.jpg'): # 查找该目录下所有的.jpg文件 _, image = pic.split('_') # 分割图片名称,如“Airport_1.jpg”得到“Airport”和“1.jpg” img = image.split('.')[0] # 再次分割,仅保留编号部分 if len(img) != 0: # 如果编号不为空 if int(img) % 2 != 0: # 如果编号为奇数 im = Image.open(pic) # 打开图片 im.save(newpath + i + '/' + pic) # 将图片保存到新的路径下,目录与原目录相同 ``` #### 四、函数调用 通过以下方式调用`read_image`函数来执行图片的筛选和复制: ```python read_image('/media/fly/4898FC1598FC02EC/RAN/AID_dataset/AID_dataset/AID/', '/media/fly/4898FC1598FC02EC/RAN/AID_dataset/AID_dataset/testing/') ``` 其中: - `/media/fly/4898FC1598FC02EC/RAN/AID_dataset/AID_dataset/AID/` 是源数据集的根目录。 - `/media/fly/4898FC1598FC02EC/RAN/AID_dataset/AID_dataset/testing/` 是新数据集(测试集)的根目录。 #### 五、注意事项 1. **路径问题**:确保提供的路径正确无误,且文件夹已存在。 2. **兼容性考虑**:不同操作系统间可能存在的路径差异需注意。 3. **错误处理**:在实际应用中,应加入适当的异常处理机制,以增强程序的健壮性。 #### 六、扩展思考 - **多线程优化**:对于大规模数据集,可以考虑使用多线程技术提高处理速度。 - **图片预处理**:除了简单的复制外,还可以在此基础上添加图片预处理步骤,如缩放、裁剪等。 - **动态配置**:通过参数化配置,使脚本更加灵活,适用于更多场景。 通过上述Python脚本,我们可以轻松实现从文件夹中抽取图片并另存的需求。这对于处理大量图片数据集非常有用,能够极大地提高工作效率。



















- 粉丝: 8
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 三、施工总进度(包括施工进度计划横道图、网络图)及保证措施.docx
- 光纤通信试题计算分析题练习.docx
- 改性塑料项目管理投资计划书.doc
- 中国网络安全行业市场现状及发展前景分析-全年市场规模或将超1700亿元.docx
- 统计工作在大数据背景下的发展机遇研究.docx
- 环境监察档案信息化管理探究.docx
- 互联网+农村初中家校共育转型例谈.docx
- 物业管理顾问项目管理经理指导手册汇编.doc
- 基于Moodle的大学计算机基础课程的混合式学习设计与实践研究.docx
- 武汉理工大学《通信工程应用技术课程设计》报告.doc
- 大数据背景下金融统计发展策略探究.docx
- 网格工程项目管理难点及对策.docx
- 异构网络资源协同调度-洞察研究.pptx
- 应用型中职计算机应用基础教学的改革与实践.docx
- 网络安全课程设计.docx
- 智慧城市对档案馆档案信息化的影响分析.docx


