AI助手帮你轻松做好Imagenet数据集重命名与复制

news/2024/5/18 16:24:09/文章来源:https://blog.csdn.net/lihuanyu520/article/details/130034103

AI助手帮你轻松做好Imagenet数据集重命名与复制

任务需求

我们对Imagenet数据集进行了水下的退化处理,保存的数据集所有图片的深度图,格式为.npy。但是命名存在一些问题,现有格式为:n02009912_1916.JPEG.npy,需要更改为n02009912_1916.npy,因此尝试用ChatGPT对数据集进行批量处理

要求点

  1. 文件夹形式为一个数据集result,路径为/home/lihuanyu/code/03AdaBins/result/,有train,test和val三个文件夹,每个文件夹又有若干的类别子文件夹,子文件夹是每一个类别的文件,文件的命名格式为如下所示:n02009912_1916.JPEG.npy
  2. 我们需要将所有的文件去掉.JPEG去掉。
  3. 最后将遍历的所有文件按照输入存储形式重新存入/home/lihuanyu/code/03AdaBins/result2中,result2下也是有train,test和val三个文件夹,每个文件夹又有若干的类别子文件夹,子文件夹是每一个类别的文件。
  4. 以python语言形式呈现。
  5. 注意我们是将原文件复制移动到新的文件夹,只是更改名字。
  6. 需要打印处理流程:处理到那张图片和处理完成的标志。

代码实现

这段代码实现了对原始文件夹下所有图片进行重命名并复制到新的文件夹中的功能,并且能够打印出每张图片的处理进度。

首先,外层的for循环遍历了三个模式(train、test、val),对应着三个文件夹。然后,通过os.path.join()函数将模式和根路径拼接得到该模式下的图片路径img_mode_path和新文件夹路径processed_mode_path,用于后续的操作。接着,内层的for循环遍历了该模式下所有类别的文件夹,并通过os.path.join()函数将类别名和图片路径拼接得到该类别下的图片路径img_class_path和新文件夹路径processed_class_path,同时判断新文件夹是否存在,如果不存在则创建。最后,for循环内部又嵌套了一个for循环,并通过os.listdir()函数遍历该类别下的所有图片文件,并通过os.path.join()函数将图片名和图片路径拼接得到该图片的绝对路径img_path。接着,判断该图片名是否包含.JPEG,如果是,则通过str.replace()函数将.JPEG去掉得到新的图片名new_img_name,再通过os.path.join()函数将新的图片名和新的文件夹路径拼接得到新的图片路径new_img_path,最后通过shutil.copy()函数将原图片复制到新的文件夹中,并更改文件名为去掉.JPEG的新文件名new_img_name,并打印出相应的处理进度。如果该图片名不包含.JPEG,则直接跳过,不进行任何操作。

每处理完一类别下所有图片,就会打印出“Finished processing all images in 类别路径”这样的提示语,表示该类别下所有图片处理完成。当处理完一个模式下的所有类别时,就会打印出“Processed all images in 模式 mode”这样的提示语,表示该模式下所有图片处理完成。最后,当处理完所有三个模式下的所有图片时,就会打印出“All done!”这样的提示语,表示整个程序运行完毕。

import os  
import shutil  # 原始数据集路径  
img_data_root = "/home/lihuanyu/code/03AdaBins/result/"  # 更改后的文件夹路径  
img_processed_root = "/home/lihuanyu/code/03AdaBins/result2/"  # 遍历原始数据集所有图片  
for mode in ['train', 'test', 'val']:  img_mode_path = os.path.join(img_data_root, mode)  processed_mode_path = os.path.join(img_processed_root, mode)  for class_name in os.listdir(img_mode_path):  # 每个类别的文件路径  img_class_path = os.path.join(img_mode_path, class_name)  processed_class_path = os.path.join(processed_mode_path, class_name)  # 如果新文件夹不存在则创建  if not os.path.exists(processed_class_path):  os.makedirs(processed_class_path)  # 遍历该类别下所有的图片  for img_name in os.listdir(img_class_path):  # 图片的绝对路径  img_path = os.path.join(img_class_path, img_name)  # 如果图片名中包含.JPEG,则重命名为去掉.JPEG的文件名  if ".JPEG" in img_name:  new_img_name = img_name.replace(".JPEG", "")  new_img_path = os.path.join(processed_class_path, new_img_name)  shutil.copy(img_path, new_img_path)  print("Copying image {} and renaming to {}...".format(img_path, new_img_path))  # 如果图片名中包含.npy,则直接复制到新文件夹中  else:  pass  print("Finished processing all images in {}!".format(processed_class_path))  print("Processed all images in {} mode!".format(mode))  
print("All done!")

结果呈现

在这里插入图片描述

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

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

相关文章

哪个网站的电子书最多?

程序员宝藏库:https://gitee.com/sharetech_lee/CS-Books-Store 随便找一个电子书导航,就会给你提供几十个电子书下载网站。 然而,当真正用到时会发现,质量层次不齐,在绝大多数时候试遍几十个网站都找不到自己想要的书…

【蓝桥杯算法模板题--蓝桥题库Java】

PDF下载地址:点击即可 文章目录算法模板1 排序(ArrayList,sort)题目描述输入描述输出描述输入输出样例示例 1运行限制2 小明的彩灯(差分)输入输出样例示例 1运行限制3 绝世武功(二阶差分算法&am…

「STM32入门」TIM输出比较

输出比较的简介 输出比较英文写作OC (Output Compare) 输出比较可以通过比较CNT和CCR寄存器值的关系,来对输出电平进行置高或者置低或者翻转的操作,用于输出一定频率和占空比的PWM波形常见应用例子如:呼吸灯,调速电机等CCR&#x…

2023年第十四届蓝桥杯javaB组省赛真题

👨‍💻作者简介:练习时长两年半的java博主 📖个人主页:君临๑ 🎞️文章介绍:2023年第十四届蓝桥杯javaB组省赛真题 🎉所属专栏:算法专栏 🎁 ps:点…

计算机网络复习——第二章 2.3

2.3物理层下面的传输媒体 传输媒体是数据传输系统中在发送器和接收器之间的物理通路。 两大类: 导引型传输媒体:电磁波被导引沿着固体媒体(铜线或光纤)传播。 非导引型传输媒体:指自由空间。非导引型传输媒体中电磁…

IDEA修改关键字和注释颜色

IDEA修改关键字和注释颜色 目录IDEA修改关键字和注释颜色1.修改关键字的默认颜色2.修改注释的默认颜色2.1 修改单行注释的颜色2.2 修改多行注释的颜色2.3 修改文档注释的颜色很多小白在刚刚使用IDEA的时候还不是很熟练 本文主要给大家提供一些使用的小技巧,希望能帮…

推荐系统:基础知识总结

itemCF的召回实践及其在信息流推荐中的应用1.1 推荐系统中的召回基本范式?1.2 为何要进行召回?1.3 召回传统方式有哪些?2. itemCF类召回2.1 从哪几个方向理解item CF2.2 通用建模方式还有哪些?3.ItemCF实践3.1 在信息流中如何抽取…

QT学习笔记(语音识别项目 )

语音识别项目 我们知道 AI 智能音箱已经在我们生活中不少见,也许我们都玩过,智能化非常高,功能 强大,与我们平常玩的那种蓝牙音箱,Wifi 音箱有很大的区别,AI 智能在哪里呢?语音识别技 术和云端…

AR实战-基于Krpano的多场景融合及热点自定义

背景 在之前的博客中,曾经介绍了关于Krpano的相关知识,原文:全景自动切片技术-krpano初识。简单讲解了基于krpano1.19-pr13下单张全景照片的处理与展示。随着实景中国在各地的落地生根,三维园区、三维景区、三维乡村等等需求的集中…

【中土世界】贝烈瑞安德简介

一、Map of Beleriand and the Land to the North 该地图为托尔金之子,克里斯托弗托尔金所手绘,描绘了第二纪元,中洲西北的贝烈瑞安德(Beleriand)的景象。从下图可以直观地看出,贝烈瑞安德在中洲的相对位置…

【蓝桥杯嵌入式】第十四届蓝桥杯嵌入式省赛[第一场]程序设计题以及详细题解

文章目录原题展示原题分析原题题解LED相关LCD相关按键相关ADC相关定时器相关PWM输入捕获小结文章福利原题展示 原题分析 今年的第一场比赛绝对np,官方将串口直接省掉了,将其替换成很多小功能,如:切换计时、频率均匀变化、锁机制等等&#xff…

【数据结构】--并查集

目录 一、概念 ​编辑 二、应用场景--“连接”问题(属于同一Qu 三、实现思路 四、如何存储数据 五、定义接口 1.初始化(init) 2.其他 isSame() 六、抽象类 六、Quick Find【v1 所在集合的所有元素都指向 v2 的…

45-Dockerfile-ARG/ENV指令

AGR/ENV指令前言ARG作用格式说明生效范围使用示例ENV作用格式说明使用环境变量使用示例ARG 和 ENV 的区别前言 本篇来学习下Dockerfile中的AGR/ENV指令 ARG 作用 定义一个可以在构建镜像时使用的变量 格式 ARG <name>[<default value>]说明 在执行 docker b…

SpringBoot学习笔记(四)

SpringBoot整合quartz 任务 定时任务是企业级应用中的常见操作市面上流行的定时任务技术: Quartz、 Spring Task 相关概念: 工作(Job):用于定义具体执行的工作工作明细(JobDetail):用于描述定时工作相关的信息触发器(Trigger):用于描述触发工作的规则,通常使用cron表达式定…

Unity --- 3d数学 --- 坐标系统

1.世界坐标系是固定不动的 2.每一个游戏物体在世界坐标系中都有对应的坐标和方向 1.轴心点的位置不是固定的&#xff0c;是可以人为设定的 1.Screen Space --- 屏幕坐标 2.我们看到的屏幕其实就是相机所在的平面的位置 --- 而屏幕坐标系的Z其实就是游戏中的物体到相机平面的…

开源DataX集成可视化项目Datax-Web的使用

上一篇文章我们已经搭建好了 Datax-Web 后台&#xff0c;这篇文章我们具体讲一下如何通过Datax-Web来配置&#xff0c;同步MySQL数据库。 目标 MySql数据库全量同步 1.执行器配置 1、"调度中心OnLine:"右侧显示在线的"调度中心"列表, 任务执行结束后, 将会…

钢铁侠材质制作——2、线条轮廓部分的制作

钢铁侠Unlit光照Shader&#xff0c;三种效果变化返回目录大家好&#xff0c;我是阿赵&#xff0c;这里是钢铁侠材质制作第二部分&#xff0c;线条轮廓部分的制作 为了实现这个效果&#xff0c;可以把细节拆分成以下几个部分&#xff1a; 1、轮廓光 1.效果分析 这是一个很基…

C生万物 | 十分钟带你学会位段相关知识

结构体相关知识可以先看看这篇文章 —— 链接 一、什么是位段 位段的声明和结构是类似的&#xff0c;有两个不同&#xff1a; 位段的成员必须是 int、unsigned int 或signed int位段的成员名后边有一个冒号和一个数字 在下面&#xff0c;我分别写了一个结构体和一个位段&…

手动构建自己的docker容器镜像实战

前言 之前的实战中&#xff0c;我们实战中&#xff0c;我们使用的镜像都是镜像仓库已有的镜像。 已有的镜像都是别人已经开发好上传的。今天我们一起来看看如何构建自己的镜像并上传到镜像仓库中。 &#x1f3e0;个人主页&#xff1a;我是沐风晓月 &#x1f9d1;个人简介&…

【Python】字符串 ⑤ ( Python 字符串快速格式化 | 不考虑变量类型 | 不考虑精度控制 )

文章目录一、Python 字符串快速格式化1、语法说明2、代码示例 - 不考虑变量类型3、代码示例 - 不考虑精度控制4、快速格式化的优点一、Python 字符串快速格式化 1、语法说明 Python 字符串快速格式化 : 通过如下格式的代码 , 可以进行字符串的快速格式化 ; f"字符串内容{…