目录
- 一、具体步骤
- 二、文件夹目录结构样例
- 三、代码
- 四、实例遍历处理后结果
- 五、总结
一、具体步骤
首先,指定 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 中的各文件夹中的图片,并对每张图片处理后保存到指定路径。在我给的代码例子中是对每张图片进行重命名,其它的处理在读入图片后加代码即可。