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日

悬赏问题

  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源