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

运行OpenCV的cv2.resize报错(-215:Assertion failed) func != 0如何解决

报错原因

该func != 0断言错误是OpenCV未找到匹配输入数据类型的resize处理逻辑导致的。你代码中创建的numpy数组a默认dtype为有符号整数类型(int32/int64),而cv2.resize仅支持以下数据类型的输入:

  • uint8
  • uint16
  • float32
  • float64
解决方法

调用resize前将数组转换为上述支持的类型即可,根据使用场景可选择两种方案:

方案1:适配图像展示场景

如果你的目的是展示二值图像,直接将数组转为uint8类型即可,同时注意原代码中cv2.destroyAllWindows缺少调用括号,修复后完整代码如下:

import numpy as np
import cv2

# 创建数组时直接指定dtype
a = np.array([[1,0],[0,0]], dtype=np.uint8)
# 也可以后续转换:a = a.astype(np.uint8)
a = cv2.resize(a, (400,400))
cv2.imshow('Image', a)
cv2.waitKey(0)
cv2.destroyAllWindows()

方案2:适配浮点运算场景

如果你后续需要对缩放后的数组做数值计算,可转为float32类型,展示时注意将数值范围映射到0-255即可:

import numpy as np
import cv2

a = np.array([[1,0],[0,0]]).astype(np.float32)
a = cv2.resize(a, (400,400))
# 浮点类型展示需归一化到0-255的uint8范围
cv2.imshow('Image', (a * 255).astype(np.uint8))
cv2.waitKey(0)
cv2.destroyAllWindows()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 17:00:05