首页 > 编程语言 >使用ChatGPT快速实现灰度和RGBA图片转换为RGB三通道图片的Python数据清洗demo

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

时间:2023-04-08 17:00:32浏览次数:46  
标签:img demo RGB 灰度 path folder save os 图片

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

任务需求

Imganet数据集,由于原始图片有灰度图片、彩色图片和RGBA图片,我们的要求是将灰度图片和RGBA图片通过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  
from PIL import Image  
  
# 定义函数,将原始图像转换为 RGB 图像  
def convert_to_rgb(img_path, img_name):  
    img = Image.open(os.path.join(img_path, img_name))  
    if img.mode == '1' or img.mode == 'RGBA':  
        img = img.convert('RGB')  
    return img  
  
# 定义函数,保存 RGB 图像到指定路径  
def save_image(img, save_path):  
    if not os.path.exists(save_path):  
        os.makedirs(save_path)  
    save_name = os.path.splitext(img.filename)[0] + '.jpg'  
    save_path = os.path.join(save_path, save_name)  
    img.save(save_path)  
    return save_path  
  
# 设置数据集路径和保存路径  
data_path = '/home/lihuanyu/code/03AdaBins/img_data/MyImagenet/'  
save_path = '/home/lihuanyu/code/03AdaBins/MyImagenet_process/'  
  
# 遍历 train、test 和 val 文件夹  
for folder in ['train', 'test', 'val']:  
    folder_path = os.path.join(data_path, folder)  
  
    # 遍历每个类别子文件夹  
    for class_folder in os.listdir(folder_path):  
        class_path = os.path.join(folder_path, class_folder)  
  
        # 遍历每张图像  
        for img_name in os.listdir(class_path):  
            img_path = os.path.join(class_path, img_name)  
            print('Processing:', img_path)  
  
            # 打开图像并进行 RGB 转换  
            rgb_img = convert_to_rgb(class_path, img_name)  
  
            # 保存 RGB 图像到指定位置  
            save_folder = os.path.join(save_path, folder, class_folder)  
            save_image(rgb_img, save_folder)  
  
            print('Saved to:', save_folder)  
  
print('Images processed and saved.')

代码可以成功运行

在这里插入图片描述

标签:img,demo,RGB,灰度,path,folder,save,os,图片
From: https://blog.51cto.com/lihuanyu/6177825

相关文章

  • Unity-浏览360图片
    1、导入360全景图,去掉GenerateMipMaps的勾选,防止出现接缝线。2、新建Sphere样式的空对象,坐标与Camera相同3、Camera的ClearFlags设置为:SolidColor4、新建材质球 Shader选择 Skybox/Panormic5、把全景附给材质球,再把材质球托给Sphere的空对象6、相机做一个自......
  • Scrapy爬虫框架 -- 图片爬取
    一、新建一个tupian爬虫项目scrapystartprojecttupian二、进入到tupian项目,新建一个image爬虫文件cdtupianscrapygenspiderimagewww.xxx.com三、修改配置文件settingsROBOTSTXT_OBEY=FalseLOG_LEVEL='ERROR'USER_AGENT="Mozilla/5.0(WindowsNT10.0;Win64;x64)......
  • PHP实现随机图片API
    分享两种PHP随机图片源码,第一种访问本地图片,第二种访问图片链接,代码如下:<!--资源宝分享:www.httple.net--><?phpheader('Cache-Control:no-cache,must-revalidate');header('Pragma:no-cache');header("Expires:0");header("Access-Control-Allow-Origin:*&......
  • C# asp.net开源插件推荐:PdfiumViewer ( pdf 转成 图片png pdf convert to image )
    1.nuget安装插件2.上代码//DefinemethodtoconvertPDFtoPNGpublicvoidConvertPdfToPng(stringpdfFilePath,stringpngFileFolder,ImageFormatformat){//Setresolution(DPI)intdpi=300;//Ren......
  • xhEditor粘贴图片自动上传到服务器(Java版)
    ​ 当前功能基于PHP,其它语言流程大致相同 1.新增上传wordjson配置在ueditor\php\config.json中新增如下配置:     /* 上传word配置 */    "wordActionName":"wordupload",/* 执行上传视频的action名称 */    "wordFieldName":"upfile",/* 提交的......
  • 如何将通过Image.open读出的图片从单通道->三通道
    如何将通过Image.open读出的图片从单通道->三通道以下代码是来自python-单通道图像转三通道_单通道图像扩展为三通道_哗啦呼啦嘿的博客-CSDN博客。importosimportcv2importnumpyasnpimportPIL.ImageasImageimportosimg_path='/home/gyx/QR/qr_detect_model/datase......
  • dedecms粘贴图片自动上传到服务器(Java版)
    ​图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.js,找到UM.plugins['autoupload'],然后找到autoUploadHandler方法,注释掉其中的代码。加入下面的代码://判断剪贴......
  • element Compressor图片压缩且上传-
      上传了压缩后的照片 <template><div><!--<el-upload:class="uploadDisabled"ref="upload":action="action":headers="headers"list-type="picture-card":limit="1":file-......
  • PHPCMS粘贴图片自动上传到服务器(Java版)
    ​ 这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下)<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@     page contentType="text/html;cha......
  • 图片转二进制 base64
    functiongetBase64Image(img){varcanvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;varctx=canvas.getContext("2d");......