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

调用cv2.resize处理frame时出现!ssize.empty()断言失败错误该如何解决?

解决OpenCV resize函数的!ssize.empty()断言错误

错误原因

这个错误的核心是传入cv2.resize()的frame为空——要么没成功读取到图像/视频帧,要么代码语法错误导致变量类型异常,resize函数要求输入的源图像必须是有效的非空矩阵。

具体解决方案

  • 检查帧/图像读取有效性
    如果是从摄像头读取视频帧,必须先确认帧读取成功:

    cap = cv2.VideoCapture(0)  # 0对应默认摄像头,根据设备调整序号
    while True:
        ret, frame = cap.read()
        # 先判断是否成功捕获帧
        if not ret:
            print("无法读取帧,请检查摄像头连接或视频源")
            break
        # 再执行缩放操作
        small_frame = cv2.resize(frame, (0,0), fx=0.25, fy=0.25)
        rgb_small_frame = small_frame[:,:,::-1]
        # 后续人脸识别处理代码...
    cap.release()
    

    如果是读取本地图像文件,要确认路径正确、文件未损坏:

    frame = cv2.imread("your_image_path.jpg")
    if frame is None:
        print("图像读取失败,请检查文件路径或文件完整性")
        exit()
    small_frame = cv2.resize(frame, (0,0), fx=0.25, fy=0.25)
    rgb_small_frame = small_frame[:,:,::-1]
    
  • 修复代码语法错误
    你的代码中small_frame = cv2.resize(...)末尾多了一个逗号,这会让small_frame变成元组而非图像矩阵,后续切片操作也会出错,必须删除这个逗号:

    # 错误写法(带多余逗号)
    # small_frame = cv2.resize(frame, (0,0), fx=0.25,fy=0.25),
    # 正确写法
    small_frame = cv2.resize(frame, (0,0), fx=0.25, fy=0.25)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 07:54:18