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

编程知识 更新时间:2023-05-02 18:07:42

使用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!")

代码可以成功运行

更多推荐

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

本文发布于:2023-04-27 20:45:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/3c2fb5a1a3ff78d9a6e64b51b6c898e2.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:灰度   图片   转换为   通道   快速

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 107457文章数
  • 27130阅读数
  • 0评论数