使用ChatGPT快速实现灰度和RGBA图片转换为RGB三通道图片的Python数据清洗demo

news2024/11/17 3:54:30

使用ChatGPT快速实现灰度和RGBA图片转换为RGB三通道图片的Python数据清洗demo

任务需求

Imagenet数据集,由于原始图片有灰度图片、彩色图片和RGBA图片,我们的要求是将灰度图片和4通道图片通过Image.open(img_path+img_name).convert('RGB')转换为RGB三通道图片重新保存起来。

要求点

  1. 文件夹形式为一个数据集MyImagenet,路径为/home/lihuanyu/code/03AdaBins/img_data/MyImagenet/,有train,test和val三个文件夹,每个文件夹又有若干的类别子文件夹,子文件夹是每一个类别的图片。
  2. 判断图片是否是灰度图片或者RGBA图片(4通道),若是进行Image.open(img_path+img_name).convert('RGB')处理转换为RGB三通道图片,否则不进行处理,直接将原图片复制到新文件夹。
  3. 最后将遍历的所有图片按照输入的存储形式重新存入/home/lihuanyu/code/03AdaBins/MyImagenet_process,MyImagenet_process下也是有train,test和val三个文件夹,每个文件夹又有若干的类别子文件夹,子文件夹是每一个类别的图片。
  4. 以python语言形式呈现。
  5. 需要打印处理流程:处理到那张图片和处理完成的标志。

代码实现

import os  
import shutil  
from PIL import Image  
  
# 原始数据集路径  
img_data_root = "/home/lihuanyu/code/03AdaBins/img_data/MyImagenet/"  
  
# 经过处理后的数据集路径  
img_processed_root = "/home/lihuanyu/code/03AdaBins/MyImagenet_process/"  
  
# 遍历原始数据集的所有图片  
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)  
            processed_img_path = os.path.join(processed_class_path, img_name)  
            # 判断图片是否是灰度图或者4通道图  
            img = Image.open(img_path)  
            if img.mode == "L" or img.mode == "RGBA":  
                # 进行转换为RGB三通道图片的操作  
                img = img.convert('RGB')  
                print("Converting image {}...".format(img_path))  
               # 保存图片到新文件夹  
	            img.save(processed_img_path) 
            else:  
                # 直接复制图片到新文件夹  
                shutil.copy(img_path, processed_img_path)  
                print("Copying image {}...".format(img_path))  
 
print("Done!")

代码可以成功运行

在这里插入图片描述

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

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

相关文章

链式二叉树及相关操作(前,中,后,层序遍历)

欢迎来到 Claffic 的博客 💞💞💞 “春来无事,只为花忙。” 前言: 上一期给大家介绍了二叉树的一种顺序结构:堆,这一期承接上一期,给大家继续介绍二叉树的另一种结构:链式结构。 目录…

深度学习部署(十九): CUDA RunTime API YOLOV5后处理cpu解码以及gpu解码

跟着杜老师学AI 看看我们干了什么, 就是把bouding box恢复成框而已 1.1 知识点和先验知识 对于模型推理后的后处理,可以直接使用cuda核函数进行解码,效率比较高nms也可以在核函数里面实现这里演示了一个yolov5的实际案例,后续其他的操作都…

反序列化渗透与攻防(四)之Fastjson反序列化漏洞

Fastjson反序列化漏洞 Fastjson介绍 Fastjson是一个阿里巴巴开源的一款使用Java语言编写的高性能功能完善的JSON库,通常被用于将Java Bean和JSON 字符串之间进行转换。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,…

leedcode刷题(4)

各位朋友们,大家好。这两天我将为大家分享我在学习栈的过程中遇到的题目,我们一起来看看。 文章目录逆波兰表达式求值题目要求用例输入提示做题思路代码实现c语言实现代码Java语言实现代码有效的括号Java代码实现逆波兰表达式求值 leedcode之逆波兰表达…

Python工程师Java之路(t)使用Shell脚本部署SpringBoot

文章目录1、概述2、在服务器上安装Maven2、在服务器上安装Git3、Shell脚本4、SpringBoot部署测试1、概述 #mermaid-svg-MhYgFNGEE2jsSopb {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-MhYgFNGEE2jsSopb .error-ic…

【中级软件设计师】—数据库系统考点总结篇(三)

【中级软件设计师】—数据库系统考点总结篇(三) 课程大纲与考点分布 1 数据库系统的体系结构 分布式数据库的透明性 1.1 三级模式—两级映射 1.2 数据库的设计过程 1.3 E-R模型 首先每个实体要单独转成一个关系模式,总共三个实体三个关系模式…

ubuntu20.04安装Intel核显QSV编译FFmpeg支持QSV硬件加速

Intel Video And Audio For Linux: libva: Libva is an implementation for VA-APIlibva下可以接入各种driver,以支持不同的设备 VA-API(Video Acceleration API): is an open-source library and API specification(规格说明,技术参数)libv…

现在的年轻人真会玩,开发界面都这么时尚,不服老都不行了

文章目录一、你还在用传统的开发界面吗二、年轻人的界面1.动漫型2.偶像型3.提神型三、更换背景的操作第一步第二步第三步一、你还在用传统的开发界面吗 不比不知道,一比吓一跳,都2023年了,你还在用Pycharm的默认背景写代码吗?已经…

深度学习训练营_第J5周_DenseNet+ SE-Net实战

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊|接辅导、项目定制 本周进行SE模块在DenseNet上的改进实验,之后将改进思路迁移到YOLOv5模型上测试 首先是学习SE模块 SE模块:Squeeze-an…

Nuxt - 超详细 Element 组件库主题颜色进行 “统一全局“ 替换,将默认的蓝色主题色更换为其他自定义颜色(保姆级教程,简易且标准全局替换主题色)

前言 如果需要纯 Vue 版本,请访问:这篇文章。 网上的文章可以用乱七八糟来形容了,各种奇葩的引入、安装各种东西,本文提供简洁且符合官方标准的解决方案。 Element UI 默认主题色是蓝色,很可能与我们设计稿不一致(比如设计稿是绿色主题), 这时候问题就出现了,难不成每…

Concept HDL学习资料汇总

本篇博文目录:一.concept HDL相关概念知识1. Concept HDL2.Concept HDL与Cadence的区别3.Concept HDL与Cadence CIS之间的转换问题二.Cadence软件安装1.Cadence 16.6安装2.Cadence 17.x安装三.concept HDL视频学习资料四.concept HDL博文学习资料五.concept HDL书籍/文档资料一…

【报错】Aanaconda环境下配置pytorch时报错 (Solved)

Aanaconda环境下配置pytorch时报错: 在命令行输入conda install pytorch torchvision torchaudio cpuonly -c pytorch安装pytorch时产生报错,报错信息如下: EnvironmentLocationNotFound: Not a conda environment: C:\Users\绀句細浜篭.conda\envs\py…

vite+vue3基础

vite创建项目指令 npm create vitelatest . 项目创建选择vue。 创建完成之后安装依赖 npm i || cnpm ivite项目下 引入文件需要配置路径 //如果文件路径 .///如果文件层 较深 配置 “/***”“../../”配置vite中的 路径(js版本支持node全局变量 ts版本不支持 types…

4款【新概念APP】对比+免费下载

4款【新概念APP】对比免费下载4款【新概念APP】对比免费下载新概念英语咖(体积小、无广告、全免费、不能倍速播放)新概念英语全册(免费,但强制广告,否则不能播放音频。可以倍速)新概念英语全四册&#xff0…

SpringBoot入门简介

SpringBoot简介 1.什么是SpringBoot SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用…

Android中的全量更新、增量更新以及热更新

在客户端开发过程中,我们可能会遇到这样一种需求:点击某个按钮弹出一个弹窗,提示我们可以更新到apk的某个版本,或者我们可以通过服务端接口进行强制更新。在这种需求中,我们是不需要通过应用商店来更新我们的apk的&…

【Hadoop/Java】基于HDFS的Java Web网络云盘

【Hadoop/Java】基于HDFS的Java Web网络云盘 本人BNUZ大学生萌新,水平不足,还请各位多多指教! 实验目的 熟悉HDFS Java API的使用;能使用HDFS Java API编写应用程序 实验要求 云盘系统通过互联网为企业和个人提供信息的储存、…

前后端部署+nginx配置

文章目录概要1、脚手架安装2、项目打包部署3、配置nginxEND概要 内容主要包括部署前端项目,nginx安装配置,以及后端项目的打包 1、脚手架安装 vue init webpack 项目运行(默认端口8080) npm run dev 如果前后端分离项目&…

使用Vue+el-form+form-validate实现管理端登录接口联调前准备工作实战

前言 这是《Vue + SpringBoot前后端分离项目实战》专栏的第7篇博客,感谢你能从成千上万篇博客中打开这一篇,和我一起学习前端开发实战知识,让我们一起开始吧。 目录 前言 一、上节回顾和本节介绍 1. 上节回顾

【可视化开发】echarts配置项——修改tooltip默认样式

修改tooltip默认样式 在可视化开发中我们通常会遇到修改tooltip样式问题,下面分享给大家代码片段和最终呈现效果 tooltip: {//鼠标悬浮框的提示文字trigger: "axis",axisPointer: {// 坐标轴指示器配置项。type: "none", // line 直线指示器 …