Python人脸识别项目将前5匹配人脸照按mug1.jpg递增序号保存问题
问题原因
- 计数器
i的初始化位置错误:你将i = 0写在了遍历matchestolist的循环内部,每处理一个匹配项就会把i重置为0,导致所有文件后缀都是0,i +=1的递增逻辑完全没有生效 - 命名规则不符合需求:当前代码是把原文件名拼接在mug序号前面,如果你不需要保留原文件名,直接生成
mug1.jpg、mug2.jpg的文件名,还需要调整文件名拼接逻辑
修复代码
如果需要保留原文件名同时添加递增序号,生成[原文件名]mug1.jpg格式的文件名:
#save up relevant matches i = 1 # 计数器初始化移到循环外部,起始值设为1对应mug1的需求 for filename in matchestolist: path = os.getcwd() + "/datasets/" file = path + filename + ".jpg" img = cv2.imread(file) cv2.imwrite(f"{filename}mug{i}.jpg", img) i += 1
如果不需要保留原文件名,直接生成mug1.jpg、mug2.jpg格式的文件名,用enumerate更简洁:
#save up relevant matches for index, filename in enumerate(matchestolist, 1): # 直接用enumerate生成从1开始的序号 path = os.getcwd() + "/datasets/" file = path + filename + ".jpg" img = cv2.imread(file) cv2.imwrite(f"mug{index}.jpg", img)
内容的提问来源于stack exchange,提问作者cfive
相关产品推荐
相关产品推荐

