Python 加载目录中的每个内部文件夹并保存

Python 加载目录中的每个内部文件夹并保存,python,numpy,python-imaging-library,Python,Numpy,Python Imaging Library,我有大约40个文件夹,每个文件夹中有50个图像,我正在给它们添加噪音。我正在做的是每次我需要为50幅图像添加噪声时都重写路径,并写入文件夹将保存的路径 例如: loadimage_with_noise('C:/Users/Images/folder 1/') 这将加载文件夹1中的每个图像,但我有多达40个文件夹,所以我必须一直重写所有路径,直到文件夹40 执行此操作的代码: def loadimage_with_noise(path): filepath_list = listdir(

我有大约40个文件夹,每个文件夹中有50个图像,我正在给它们添加噪音。我正在做的是每次我需要为50幅图像添加噪声时都重写路径,并写入文件夹将保存的路径

例如:

loadimage_with_noise('C:/Users/Images/folder 1/')
这将加载文件夹1中的每个图像,但我有多达40个文件夹,所以我必须一直重写所有路径,直到文件夹40

执行此操作的代码:

def loadimage_with_noise(path):
    filepath_list = listdir(path)
    for filepath in filepath_list:
        img = Image.open(path + filepath)
        img = img.resize((81, 150))
        img = np.asarray(img)
        noise_image = generate_noisy_image(img, 0.10)
        noise_image = Image.fromarray(noise_image)
        noise_image = noise_image.convert("L")
        folder_index = 'folder 2/'
        noise_image.save('C:/Users/Images/Noise/'+folder_index +filepath, 'JPEG')
添加噪声的函数

def generate_noisy_image(x, variance):
    noise = np.random.normal(0, variance, (150, 81))
    return x + noise
我想做的是自动化这项任务,而不是为我的图像文件夹中的每个文件夹传递一个新路径作为参数,我只想:对于每个文件夹,加载其中的每个图像,并将它们保存在一个新文件夹中(噪声已经被添加),对于我的图像文件夹中的每个文件夹

因此,对于每40个包含50个图像的文件夹,我将在不同的目录中创建新的40个包含50个图像的文件夹

您可以使用os.walk

导入操作系统
对于os.walk(“C:/Users/Images/”)中的root、dir和文件:
对于文件中的名称:
image\u path=os.path.join(根,名称)
处理您的图像(图像路径)

您已经知道函数
listdir
。为什么不用它来迭代
C:/Users/Images/
中的所有文件夹?我不知道如何保存它们,因为它会循环通过。你是什么意思?我不明白你需要保存什么。因此,在文件夹
Images
中,您有x个名为
folder{number}
的文件夹,其中包含多个图像。你想把有噪声的图像保存在哪里?我在读取图像时给图像添加噪声,现在用噪声保存图像,这里真的没有标准,只要它不是同一个文件夹,我只想:加载,添加噪声,保存使用一个全局变量,在你的函数中使用一个额外的参数。Idk你有什么问题。你建议我如何保存图像?你想保存在哪里?最简单的情况是设置另一个文件夹的路径并将图像保存到任何位置,但在另一个文件夹中创建一个名为Images2 path=C:/Users/Images2/noise_image.save(路径+名称)的文件夹我必须更改路径目录40次:简言之,我要做的是加载40个文件夹图像,对于每个文件夹加载,添加噪声并保存在不同的文件夹中。因此,我将有新的40个文件夹,其中包含50个图像,但现在有了噪波