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

调用cv2.VideoWriter时size参数应如何设置?size未定义报错如何解决

cv2.VideoWriter size参数说明与报错解决

size参数要求

cv2.VideoWriter的size参数需要传入*(宽度, 高度)*格式的整数元组,单位为像素,数值必须和后续写入视频的每帧图像尺寸完全一致。

报错原因

你遇到的NameError: name 'size' is not defined报错是因为size变量仅在遍历图片的for循环内部定义,当glob.glob没有匹配到任何符合条件的jpg图片时,for循环不会执行,size变量自然就没有被初始化,调用VideoWriter时就会找不到该变量。

解决步骤

  • 第一步:确认图片路径配置正确
    先打印匹配到的文件列表,确认路径、文件格式没有问题:
    print(glob.glob('C:/New folder/Images/*.jpg'))
    
    如果输出为空,检查路径是否存在、路径内是否有后缀为.jpg的图片、路径拼写是否正确(注意空格、中英文符号、斜杠方向)。
  • 第二步:优化代码逻辑,避免变量未定义问题
    建议提前判断是否匹配到图片,并且统一取第一张图片的尺寸作为size参数值,避免出现部分图片尺寸不一致导致的后续写入错误,修改后代码如下:
    import cv2
    import numpy as np
    import glob
    
    img_array = []
    # 遍历匹配图片
    for filename in glob.glob('C:/New folder/Images/*.jpg'):
        img = cv2.imread(filename)
        if img is None:
            continue
        img_array.append(img)
    
    # 先判断是否读到有效图片再执行后续逻辑
    if len(img_array) == 0:
        print("未读取到任何有效图片,请检查路径配置")
    else:
        # 取第一张图片的尺寸作为输出视频的尺寸
        height, width, layers = img_array[0].shape
        size = (width, height)
        out = cv2.VideoWriter('project.avi',cv2.VideoWriter_fourcc(*'DIVX'), 15, size)
        
        for img in img_array:
            out.write(img)
        out.release()
        print("视频生成完成")
    

内容的提问来源于stack exchange,提问作者nicomp

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:15:03