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

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.kler.cn/a/9429.html

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

相关文章

KNN、SVM、MLP、K-means分类实验

来源:投稿 作者:摩卡 编辑:学姐 数据集简介 实验使用了两个数据集,一个是经典的鸢尾花数据集(iris)另一个是树叶数据集(leaf) 鸢尾花数据集(iris): 鸢尾花数据集发布于1988年7月1日,该数据集共有150条数…

chapter-4-数据库语句

以下课程来源于MOOC学习—原课程请见:数据库原理与应用 考研复习 概述 SQL发展 注:关键词是哪些功能,尤其第一个create alter drop是定义功能 1.SQL功能强大,实现了数据定义、数据操纵、数据控制等功能 2.SQL语言简洁&#xff…

一般形式的S曲线公式推导

文章目录一、背景二、目标三、计算3.1 S曲线基本形式3.2 S曲线变换3.3 参数计算3.4 S曲线中心对称条件四、总结五、附件一、背景 S曲线因具备良好可控的平滑性、单调性、连续可导性等优点,常作为各类电机升降速曲线。当前多数S曲线的介绍文章未给出推导过程&#x…

项目的总结

逻辑处理 首先对于版项目来说,工作多是一定的但是又可以看到自己的知识被应用和自己学的不是一无所用。 对于一个项目而言,逻辑是很重要的。理解一个项目的逻辑,我们才能去实施工作画流程图、用例图、原型图、e-r图等等模型 一开始对于一个项目、逻辑是十分混乱的,就需要解耦,把…

OpenCV基础之边缘检测与轮廓描绘

文章目录OpenCv基础之边缘检测与轮廓描绘Canny边缘检测图像轮廓绘制轮廓OpenCv基础之边缘检测与轮廓描绘 边缘检测:主要是通过一些手段检测数字图像中明暗变化剧烈(即梯度变化比较大)像素点,偏向于图像中像素点的变化。 轮廓检测…

VScode 自动格式化配置

按照自定义 c/c 格式配置自动格式化保存 1. 设置 快捷键:ctrl, 2. format 3.设置C/C格式化格式 参数 : { BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Linux, AllowShortIfStatementsOnASingleLine: fals…

【启动图片与控制器大小的关系 Objective-C语言】

一、启动图片与控制器大小的关系 1.我首先呢,新建一个项目,把控制器的View设置成多大呢,设置成4.7英寸,这是按照我们iPhone6的大小来设置的吧, 2.控制器是4.7英寸,控制器里面这个View,占满整个屏幕,所以它也是4.7英寸大小吧,375667, 3.我在viewDidLoad里,输出一下…

Vite构建Vue3项目

目录1. 初始化2. 输入项目名称3. 选择vue4. 选择typescript5. 进入新建的项目6. 安装依赖7. 运行8. 安装路由9. 安装element-plus10. 安装自动导入组件插件11. 安装自动导入api插件12. 将./src变为13. 安装pinia1. 初始化 npm init vite2. 输入项目名称 vue3-ts 3. 选择vue 4…

存量市场之下,电商之战深入腹地且逻辑未变

纵然是在流量依然见顶的大背景下,电商行业的竞争并未结束。无论是以百亿补贴为代表的烧钱策略,还是以跨境出海为代表的规模策略,几乎都是这样一种现象的直接体现。种种迹象表明,未来的电商行业,依然会有新的战役发生。…

针对近日ChatGPT账号大批量封禁的理性分析

文 / 高扬 这两天不太平。 3月31号,不少技术圈的朋友和我闲聊说,ChatGPT账号不能注册了。 我不以为然,自己有一个号足够了,并不关注账号注册的事情。 后面又有不少朋友和我说ChatGPT账号全部不能注册了,因为老美要封锁…

软件测试今天你被内卷了吗?

认识一个人,大专学历非计算机专业的,是前几年环境好的时候入的行,那时候软件测试的要求真的很低,他那时好像是报了个班,然后入门的,但学的都是些基础,当时的他想的也简单,反正也能拿…

【LeetCode每日一题: 516. 最长回文子序列 | 暴力递归=>记忆化搜索=>动态规划 | 区间dp 】

🍎作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎 🍎座右…

【华为OD机试】1035 - 判断两个IP是否属于同一子网

文章目录一、题目🔸题目描述🔸输入输出🔸样例1二、思路解析三、代码参考作者:KJ.JK🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &#x1f…

MySQL库的操作

文章目录一、创建数据库1.语法2.使用案例二、字符集和校验规则1.查看系统默认字符集以及校验规则2.查看数据库支持的字符集3.查看数据库支持的字符集校验规则4.校验规则对数据库的影响三、操纵数据库1.查看数据库2.显示创建语句3.修改数据库4.删除数据库5.查看连接情况一、创建…

Linux进程间通信

“休息过长就会发霉。”--沃尔特司各特 在讲述完毕Linux中的基础IO之后,我们要来到Linux中很重要的一个模块,即进程间通信。 目录 1.引入 2.管道 2.1内容 2.2原理 2.3操作 2.3.1匿名管道的创建 2.3.2命名管道的创建 1.引入 进程间通信&#x…

计讯物联小型水库雨水情测报与大坝安全监测一体化解决方案,确保水库安全运行

方案背景 防洪治理工程是一项重大的民生工程,也是重大的生态工程。基于我国水灾频发的大背景下,小型水库作为防汛抗洪的重要基础设施,其雨水情测报与大坝安全监测是十分有必要的,不仅可为预防水灾、防汛决策提供大量可靠的数据和资…

SpringAMQP

什么是SpringAMQP 官方网址 官方文档https://spring.io/projects/spring-amqp Base Queue 简单队列模型 对于生产者 <!--AMQP依赖&#xff0c;包含RabbitMQ--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boo…

实验6 TensorFlow基础

1. 实验目的 掌握TensorFlow低阶API&#xff0c;能够运用TensorFlow处理数据以及对数据进行运算。 2.实验内容 ①实现张量维度变换&#xff0c;部分采样等&#xff1b; ②实现张量加减乘除、幂指对数运算&#xff1b; ③利用TensorFlow对数据集进行处理。 3.实验过程 题目…

亚马逊测评只能下单上好评?卖家倾向养号测评还有这些骚操作

亚马逊测评这对于绝大部分亚马逊卖家来说都不陌生&#xff0c;如今的亚马逊市场也很多卖家都在用测评科技来打造爆款。不过很多对于亚马逊测评的认知只停留在简单的刷销量&#xff0c;上好评。殊不知亚马逊养号测评还有其它强大的骚操作。 亚马逊自养号测评哪些功能呢&#xf…

Drone+Gitea CICD环境搭建流程笔记

之前没有用过drone&#xff0c;现在公司有用到&#xff0c;看drone.yml配置文件有很多没搞清楚的地方&#xff0c;所以打算自己走一遍配置流程&#xff0c;理清一些概念&#xff0c;这里记下笔记。 为了方便&#xff0c;drone&#xff0c;gitea以及相关软件都是用docker的版本…
最新文章