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

OpenCV imshow报size.width>0断言失败错误 栅格图转VGG16输入数组问题

报错原因及修复方案

触发imshow报错的直接原因

你在读取用于展示的原图时,给cv2.imread传入了字符串字面量"reg001_path",而非你之前定义的存储实际路径的变量,OpenCV找不到对应文件返回了None,传入imshow后触发了尺寸校验失败的断言错误。
直接修复方案:将对应行代码修改为:

orig = cv2.imread(reg001_path)

其他影响VGG16推理的逻辑错误

你的代码还存在两处会导致模型推理结果异常的问题:

  • numpy数组的resize方法是原地操作,无返回值,你写的image = channel_reg001.resize((224, 224, 3))会让image变量为空,且单通道栅格数据直接拉伸为3通道不符合VGG16的输入要求,你需要先将单通道数据复制3次拼接为伪RGB格式,再调整尺寸:
    # 单通道转3通道,再resize到224*224
    channel_reg001 = cv2.resize(channel_reg001, (224,224))
    channel_reg001 = np.stack([channel_reg001]*3, axis=-1)
    image = np.expand_dims(channel_reg001, axis=0)
    
  • 如果你用的是GDAL读取的多波段影像,注意GDAL读取的波段顺序和OpenCV默认的BGR顺序不同,需自行调整为RGB顺序再做预处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:57:01