首页 > 解决方案 > OpenCV:AssertionError:图像不是 np.ndarray

问题描述

有时,没有特定的模式——这意味着有时会发生,有时不会,使用相同的 .jpg 图片作为输入——会引发以下错误:

AssertionError: Image is not a np.ndarray

作为正常加载图片的结果:

imgcv = cv2.imread(image_path)

并且只是尝试使用预先训练的模型或绘制图像进行预测。

具体来说,图片不是作为np.arrays加载的,例如,三个维度为 (700,700, 3)。相反,它被存储为内置模块的 NoneType 对象。

哪个可能是此错误的原因?

我目前正在使用:

print(cv2.__version__)
'4.0.0'

标签: pythonopencv

解决方案


最佳猜测:文件系统问题。 找不到文件时cv2.imread(fn)返回。None

我的分析代码有时会在分析存储在 Synology 盒子(即 NAS)上的视频时失败,这些视频往往会进入睡眠模式,然后唤醒太慢,在我第一次运行分析时给出“找不到文件”;当我重新运行它时,一切正常。在本地磁盘或 SSD 上不太可能出现类似问题,但在虚拟机、高负载机器或磁盘坏掉的情况下看到它们我不会感到惊讶……


推荐阅读