首页 > 解决方案 > 使用python将图像保存到子目录中

问题描述

我想将一些使用 opencv 处理过的图像保存到子目录中。我曾尝试使用 os.walk,但它无法将图像保存到子目录中。在这里,我向您展示我的代码和我想要的。

我的输入目录以及我要保存的内容如下所示:

dir_data:
 -subdir_A:
    -img_1.jpg
    -img_2.jpg
 -subdir_B:
    -img_3.jpg
    -img_4.jpg

使用我的代码的输出:

dir_A:
 -subdir_A:
    -img_1.jpg
    -img_2.jpg
    -img_3.jpg
    -img_4.jpg
 -subdir_B:
    -img_1.jpg
    -img_2.jpg
    -img_3.jpg
    -img_4.jpg

我的代码:

for root, dirs, files in os.walk(output_directory):
    for file_ in files:
       full_file_path = os.path.join(root, file_)

       for i in range(image.shape[0]):
          cv2.imwrite(os.path.join(root, file_+"%03d.jpg"%i),image[i,:,:,::-1])

print("wrote %d images"%(image.shape[0]))

标签: pythonopencvos.walk

解决方案


您收到的错误信息是什么?

我建议您首先尝试使用完整路径手动保存图像:

cv2.imwrite("./dir_A/subdir_a/img1.png",image[i,:,:,::-1])

一旦您确认您的图像保存过程适用于完整路径,请打印出您正在创建的路径的每个部分以及连接的路径,并进行比较以查找缺失的内容。

打印(根)

打印(file_+"%03d.jpg"%i)

我的猜测是您在某处缺少斜线。


推荐阅读