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

运行cv2.resize时报错(-215:Assertion failed)!ssize.empty()如何解决?

该报错的核心是cv2.resize接收到的输入图像为空,触发了OpenCV的内置断言校验,错误源头为前一步的cv2.imread读取图像失败返回了空值。

报错原因
  • 路径拼接错误:手动拼接的raw_folder + folder +"/" + file路径不存在,可能是斜杠重复/缺失、路径含未兼容的中文字符/特殊符号、文件夹/文件名拼写错误、相对路径与当前工作目录不匹配。
  • 文件不合法:目标路径的文件不是有效图像,可能是文件损坏、后缀被篡改、为非图像格式的临时文件/隐藏文件/系统文件。
  • OpenCV读取限制:cv2.imread默认不支持部分冷门图像格式,也无法读取带中文/特殊字符的路径,会直接返回空值。
解决方法

首先建议在代码中增加读取校验逻辑,避免无效输入传入resize,参考代码如下:

import os
import cv2
import numpy as np

# 优先用os.path.join拼接路径,自动适配不同系统的斜杠规则
img_path = os.path.join(raw_folder, folder, file)
# 过滤非图像后缀文件
if not file.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.webp')):
    print(f"跳过非图像文件:{img_path}")
    continue
# 兼容中文路径的读取方式
img = cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), cv2.IMREAD_COLOR)
if img is None:
    print(f"图像读取失败,路径:{img_path}")
else:
    resized_img = cv2.resize(img, dsize=(128,128))
    pixels.append(resized_img)

其他针对性解决措施:

  • 路径校验:打印拼接后的完整路径,手动确认文件是否存在;优先使用绝对路径替代相对路径,避免工作目录不匹配的问题。
  • 无效文件过滤:遍历文件时增加后缀校验,跳过非图像格式的文件,也可以提前扫描文件夹剔除损坏的图像文件。
  • 兼容性处理:路径含中文/特殊符号时,使用cv2.imdecode的方式读取图像,不要直接用cv2.imread。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 06:36:00