首页 > 解决方案 > 循环浏览google colab中多个文件夹中的不同图像并将图像格式从一种转换为另一种

问题描述

如图所示: train1_set 中的 11 个文件夹,每个文件夹有 600 张图片。我想将所有图像的格式从 png 转换为 jpg 并将它们以类似格式保存到 Train_jpg。为此,我已经在 Train_jpg 中创建了 11 个空文件夹,其名称与 train1_set 中的名称相同。

对于这项任务,我编写了以下代码:

folder_path = '/tmp/characters/train1_set'
for fldr in os.listdir(folder_path):
    sub_folder_path = os.path.join(folder_path, fldr)
    for filee in os.listdir(sub_folder_path):
        file_path = os.path.join(sub_folder_path, filee)
        im = Image.open(file_path)
        rgb_im = im.convert('RGB')
        rgb_im.save('/tmp/Train_jpg/{}/{}.jpg'.format(fldr,filee.split('.')[0]))

但我收到错误:

FileNotFoundError                         Traceback (most recent call last)
<ipython-input-8-ea4ef81a0e50> in <module>()
      7         im = Image.open(file_path)
      8         rgb_im = im.convert('RGB')
----> 9         rgb_im.save('/tmp/Train_jpg/{}/{}.jpg'.format(fldr,filee.split('.')[0]))
     10 

/usr/local/lib/python3.6/dist-packages/PIL/Image.py in save(self, fp, format, **params)
   2097                 fp = builtins.open(filename, "r+b")
   2098             else:
-> 2099                 fp = builtins.open(filename, "w+b")
   2100 
   2101         try:

FileNotFoundError: [Errno 2] No such file or directory: '/tmp/Train_jpg/ગ/aakar-medium_38_ગ_15.jpg'

请帮我解决我的问题。提前致谢。

标签: pythontensorflowdeep-learningcomputer-vision

解决方案


您的代码中有一些错误,我已更正。
您收到错误是因为filee没有正确的路径。
代码:

import os
from PIL import Image
folder_path = '/tmp/characters/train1_set'
target_path = '/tmp/Train_jpg'
for fldr in os.listdir(folder_path):
    sub_folder_path = os.path.join(folder_path, fldr)
    if fldr not in os.listdir(target_path):
        os.mkdir(os.path.join(target_path,fldr))
    for filee in os.listdir(sub_folder_path):
        file_path = os.path.join(sub_folder_path, filee)
        im = Image.open(file_path)
        rgb_im = im.convert('RGB')
        rgb_im.save('data/img1/{}/{}.jpg'.format(fldr,filee.split('.')[0]))

推荐阅读