m0_58447185 2023-03-14 21:43 采纳率: 41.7%
浏览 14
已结题

如何批量从RGB模式转为L模式

如何批量将jpg格式图片从RGB模式转为L模式
如下代码未报错,但也未创建成功

from PIL import Image
import os
def get_path(path):
    '''返回目录中所有PNG图像的文件名列表'''
    return [os.path.join(path,f) for f in os.listdir(path) if f.endswith('.png')]
pth = get_path('C:/Users/ASUS/Desktop/train')   # get_path(path)中path参数是自己的文件夹目录,例如('../mask_dir_Class)
for img in pth:
    im = Image.open(img).convert('L')
    im.save('C:/

  • 写回答

3条回答 默认 最新

  • 竟然有人敢 2023-03-15 00:18
    关注

    在将图像从RGB转换为L模式时,可以使用Pillow库中的convert()方法。示例代码如下,它将指定目录中所有的jpg格式的图片都转换为L模式并保存到新的文件夹中:

    from PIL import Image
    import os
    
    # 获取目录中所有JPG图像的文件名列表
    def get_path(path):
        return [os.path.join(path, f) for f in os.listdir(path) if f.endswith('.jpg')]
    
    # 创建新文件夹用于存储转换后的图像
    if not os.path.exists('C:/Users/ASUS/Desktop/train_L'):
        os.mkdir('C:/Users/ASUS/Desktop/train_L')
    
    # 获取图像列表并进行转换
    img_list = get_path('C:/Users/ASUS/Desktop/train')
    for img_path in img_list:
        im = Image.open(img_path).convert('L')
        # 获取文件名并拼接新的路径
        img_name = os.path.basename(img_path)
        new_path = os.path.join('C:/Users/ASUS/Desktop/train_L', img_name)
        # 保存转换后的图像
        im.save(new_path)
    
    
    

    首先定义一个get_path()函数,用于获取目录中所有jpg格式的图片的文件名列表。然后创建了一个新的文件夹train_L,用于存储转换后的图像。在获取图像列表之后,使用Pillow库中的Image.open()方法打开每个图像,并将其转换为L模式。然后将转换后的图像保存到新的文件夹中,以与原始图像相同的文件名。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月23日
  • 已采纳回答 3月15日
  • 创建了问题 3月14日

悬赏问题

  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入