You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 00:06:13