如何将文件图像保存为原始名称

时间:2018-12-19 11:03:36

标签: python python-3.x opencv

我想使用图像的原始名称保存输出图像。

我尝试使用此代码,但是大多数情况下效果很好,一半保存了其他文件名。如何做得更好?

cropped_images = "GrabCut"

if not os.path.exists(cropped_images):
    os.makedirs(cropped_images)

# Load data
filepath = "Data"
images = [cv2.imread(file) for file in glob.glob(filepath + "/*.jpg")]

file_names = []
for filename in os.listdir(filepath):
    org_image_name = os.path.splitext(filename)[0]
    file_names.append(org_image_name)

for i, image in enumerate(images):
    DO SOMETHING...

    img_name = file_names[i]
    cropped_images_path = os.path.join(cropped_images, img_name + '.jpg')

    cv2.imwrite(cropped_images_path, image)

1 个答案:

答案 0 :(得分:0)

出现错误的原因是globos.listdir所创建的列表不同,文件也不一样(glob仅获取jpg文件和{{1} }获取所有内容)或不同的顺序,或两者兼而有之。您可以更改列表listdir中的文件名,以建立新文件名orig_files的相应列表。

看起来一次只读取一张图像(一次只能使用一张)更有意义,因此我将其移入了循环。您还可以使用new_files获取文件名,并使用os.path.basename一起遍历多个列表。

zip