首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导致IndexError的cvlib :标量变量的无效索引

导致IndexError的cvlib :标量变量的无效索引
EN

Stack Overflow用户
提问于 2021-10-26 07:26:42
回答 2查看 1.4K关注 0票数 4

我正在尝试使用cvlib学习一个简单的对象检测教程,但是我一直遇到一个IndexError,并且找不到其他人在这个问题上挣扎。下面是我从教程和输出中复制和粘贴的完整代码。任何帮助都是非常感谢的!

代码:

代码语言:javascript
复制
import cv2
import numpy as np
import matplotlib.pyplot as plt
import cvlib as cv
from cvlib.object_detection import draw_bbox, detect_common_objects
from numpy.lib.polynomial import poly

input = cv2.imread('cars1.jpg')

image = cv2.cvtColor(input,cv2.COLOR_BGR2RGB)

plt.axis('off')

box, label, count = cv.detect_common_objects(image)

output = draw_bbox(image, box, label, count)

plt.imshow(output)

plt.show()

输出

代码语言:javascript
复制
Traceback (most recent call last):   
File "/Users/zechariahtay/Desktop/ttt.py", 
line 19, in <module>
    box, label, count = cv.detect_common_objects(image)   
File "/usr/local/lib/python3.9/site-packages/cvlib/object_detection.py",
line 135, in detect_common_objects
    outs = net.forward(get_output_layers(net))   
File "/usr/local/lib/python3.9/site-packages/cvlib/object_detection.py",
line 29, in get_output_layers
    output_layers = [layer_names[i[0] - 1] for i in net.getUnconnectedOutLayers()]   
File
"/usr/local/lib/python3.9/site-packages/cvlib/object_detection.py",
line 29, in <listcomp>
    output_layers = [layer_names[i[0] - 1] for i in net.getUnconnectedOutLayers()] 
IndexError: invalid index to scalar variable
EN

回答 2

Stack Overflow用户

发布于 2021-10-29 15:34:50

如果您使用的是OpenCV > 4.5.3,则可能与v4.5.4中引入的这个错误有关。我也有同样的错误,当我降级(pip3 install opencv-python==4.5.3.56)时,它被修正了。

票数 4
EN

Stack Overflow用户

发布于 2022-06-18 14:30:29

没有必要降低您的OpenCV版本。后期版本返回一个一维数组,其中包含每个层的索引。只需避免索引([0]),如下所示:

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69719025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档