python - 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'
解决方案
最佳猜测:文件系统问题。 找不到文件时cv2.imread(fn)
返回。None
我的分析代码有时会在分析存储在 Synology 盒子(即 NAS)上的视频时失败,这些视频往往会进入睡眠模式,然后唤醒太慢,在我第一次运行分析时给出“找不到文件”;当我重新运行它时,一切正常。在本地磁盘或 SSD 上不太可能出现类似问题,但在虚拟机、高负载机器或磁盘坏掉的情况下看到它们我不会感到惊讶……
推荐阅读
- python - 为什么我在这个调用方法上得到一个无效的语法?Python
- android - 任务 ':app:compressDebugAssets' 执行失败
- python - 'str' 和 'int' 的实例之间不支持 '<'
- kubernetes - 使用 eks 时 kubernetes 仪表板的自定义密码
- python - 我怎样才能把我的结束日期定在明天?尝试安排程序每天运行
- mongodb - 如何使用mongo从nodejs中的多级数组中删除obejct?
- cheerio - Cheerio - 仅从 html 文件中获取文本
- python-3.x - 如何仅从我正在使用的模块中导入那些功能(pycharm)
- c# - 如何检查字符串变量类型
- php - PHP字符串替换输入元素以跨越