Python遍历读取 A 文件夹中的 A1、A2、A3、A4、A5 中的各子文件夹中的图片,并对每张图片处理后保存到指定路径

2024-01-09 15:24:46

一、具体步骤

首先,指定 A 文件夹的路径和重命名后的文件夹路径。
然后,遍历 A 文件夹中的各子文件夹。
在每个子文件夹中,遍历所有文件。
读取每个文件,获取图片路径、图片名称和图片数据。
使用子文件夹的名称重命名图片。
保存图片到指定路径。

二、文件夹目录结构样例

例如,如果 A 文件夹中包含如下内容:
A
├── A1
│ ├── image1.jpg
│ └── image2.jpg
├── A2
│ ├── image1.jpg
│ └── image2.jpg
├── A3
│ ├── image5.jpg
│ └── image6.jpg
├── A4
│ ├── image1.jpg
│ └── image2.jpg
└── A5
├── image9.jpg
└── image10.jpg

执行上述代码后,将会在 B 文件夹中生成如下内容:

B
│ rename1.jpg
│ rename2.jpg
│ rename3.jpg
│ rename4.jpg
│ rename5.jpg
│ rename6.jpg
│ rename7.jpg
│ rename8.jpg
│ rename9.jpg
│ rename10.jpg

三、代码

import cv2
import os

# 指定A文件夹的路径
root_path = "Images/image"

# 指定处理或重命名后的文件夹路径
target_path = "Images/image_all"

k=0

# 遍历A文件夹中的各个子文件夹
for dirpath,dirnames,filenames in os.walk(root_path):
    # 遍历每个子文件夹
    for filename in filenames:
        # 获取图片路径
        img_path = os.path.join(dirpath,filename)
        # 读取子文件夹中的每一张图片
        img = cv2.imread(img_path)
        # 获取图片名称
        img_name = os.path.basename(img_path)
        # 重命名图片
        new_img_name = "{}.bmp".format(("noise_"+str(k)))
        print(new_img_name)
        # 保存图片
        cv2.imwrite(os.path.join(target_path,new_img_name),img)
        k+=1

四、实例遍历处理后结果

在这里插入图片描述

遍历重命名后保存到指定路径的结果:

在这里插入图片描述

五、总结

以上就是使用Python遍历读取 A 文件夹中的 A1、A2、A3、A4、A5 中的各文件夹中的图片,并对每张图片处理后保存到指定路径。在我给的代码例子中是对每张图片进行重命名,其它的处理在读入图片后加代码即可。

文章来源:https://blog.csdn.net/qq_40280673/article/details/135377962
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。