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

使用cvlib做目标检测时出现IndexError: invalid index to scalar variable报错如何解决

报错根因

这个错误是OpenCV版本和cvlib版本不兼容导致的:OpenCV 4.5.1及更高版本中,net.getUnconnectedOutLayers() 接口返回值格式从原来的嵌套二维数组改成了一维标量数组,而cvlib的源码还是按照旧格式编写,对返回值做i[0]索引操作时就会触发标量索引错误。


解决方案

方案1:降级OpenCV版本(最简单,无需改源码)

直接安装和cvlib适配的OpenCV版本即可,执行以下命令:

pip install opencv-python==4.5.1.48 opencv-python-headless==4.5.1.48

安装完成后重新运行代码即可正常执行。

方案2:修改cvlib源码适配高版本OpenCV(不想降级的话用)

按照报错提示找到cvlib的源码文件:/usr/local/lib/python3.9/site-packages/cvlib/object_detection.py,定位到第29行代码:

output_layers = [layer_names[i[0] - 1] for i in net.getUnconnectedOutLayers()]

把代码里的i[0]改成i,修改后为:

output_layers = [layer_names[i - 1] for i in net.getUnconnectedOutLayers()]

保存文件后重新运行代码即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:06:08