Python OpenCV如何将图像保存到指定固定路径并用变量作文件名
OpenCV指定固定路径保存摄像头采集图像方案
核心逻辑:cv2.imwrite()支持直接传入文件的绝对路径作为保存目标,不需要依赖程序运行的当前工作目录。推荐用Python内置的os模块做路径拼接,自动适配不同操作系统的路径分隔符规则,避免手动拼接路径的格式错误。
修改步骤
- 导入Python标准库
os,用于路径处理和目录创建 - 提前定义固定的存储目录常量,替换为你实际需要的存储路径即可
- 保存图片前自动校验目标目录是否存在,不存在则递归创建,避免因路径缺失导致写入失败
- 用
os.path.join()拼接固定目录、带后缀的文件名,生成完整的绝对保存路径,传入cv2.imwrite()完成写入
修改后可直接运行的完整代码
import cv2 import os # 固定存储路径,请替换为你自己的实际目标目录 SAVE_PATH_DIR = "D:/camera_capture_files" # 文件名从变量读取 img_name = "TEST" # 自动创建目标目录,目录已存在时不会抛出异常 os.makedirs(SAVE_PATH_DIR, exist_ok=True) cam = cv2.VideoCapture(0) cam.set(cv2.CAP_PROP_FRAME_WIDTH, 1280) cam.set(cv2.CAP_PROP_FRAME_HEIGHT, 720) while True: ret, frame = cam.read() # 增加帧读取失败的判断,避免异常 if not ret: break cv2.imshow('preview', frame) if cv2.waitKey(1) & 0xFF == ord('q'): # 拼接完整的文件保存路径 file_full_name = f"{img_name}.jpg" full_save_path = os.path.join(SAVE_PATH_DIR, file_full_name) cv2.imwrite(full_save_path, frame) break cam.release() cv2.destroyAllWindows()
注意事项
- Windows系统写路径时如果用反斜杠
\,请在路径字符串前加r标记为原始字符串,比如r"D:\camera_capture_files",避免反斜杠被识别为转义字符导致路径错误- 不要选择系统权限受保护的目录(比如Windows的C盘根目录、Program Files目录,macOS/Linux的/root目录)作为存储路径,否则会因为权限不足写入失败
- 如果需要避免同名文件被覆盖,可以在文件名中追加时间戳标识,比如将
file_full_name定义为f"{img_name}_{int(time.time())}.jpg"即可,使用前需要先导入time模块
内容的提问来源于stack exchange,提问作者Dominik Treml
相关产品推荐
相关产品推荐

