首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于对象检测的标量变量无效索引

用于对象检测的标量变量无效索引
EN

Stack Overflow用户
提问于 2022-01-17 12:31:03
回答 1查看 180关注 0票数 2

我开始研究OpenCV并做一些基本的例子。我正试着从图像中数出物体。例如,您可以在下面看到非常基本和流行的示例。

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

img = cv2.imread('cars.jpg')
img1 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.figure(figsize=(10, 10))
plt.axis('off')
plt.imshow(img1)
plt.show()

在此之前没有任何问题,但是当我试图画出框架时,我就有了一个错误。这个代码是;

代码语言:javascript
复制
box, label, count = cv.detect_common_objects(img)
output = draw_bbox(img, box, label, count)

output = cv2.cvtColor(output,cv2.COLOR_BGR2RGB)
plt.figure(figsize=(10,10))
plt.axis('off')
plt.imshow(output)
plt.show()

当它运行这个脚本时,它会出现一个"IndexError“。错误:

代码语言:javascript
复制
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-14-df69657efc75> in <module>
----> 1 box, label, count = cv.detect_common_objects(img)
      2 output = draw_bbox(img, box, label, count)
      3 
      4 output = cv2.cvtColor(output,cv2.COLOR_BGR2RGB)
      5 plt.figure(figsize=(10,10))

~\Anaconda3\lib\site-packages\cvlib\object_detection.py in detect_common_objects(image, confidence, nms_thresh, model, enable_gpu)
    133     net.setInput(blob)
    134 
--> 135     outs = net.forward(get_output_layers(net))
    136 
    137     class_ids = []

~\Anaconda3\lib\site-packages\cvlib\object_detection.py in get_output_layers(net)
     27     layer_names = net.getLayerNames()
     28 
---> 29     output_layers = [layer_names[i[0] - 1] for i in net.getUnconnectedOutLayers()]
     30 
     31     return output_layers

~\Anaconda3\lib\site-packages\cvlib\object_detection.py in <listcomp>(.0)
     27     layer_names = net.getLayerNames()
     28 
---> 29     output_layers = [layer_names[i[0] - 1] for i in net.getUnconnectedOutLayers()]
     30 
     31     return output_layers

IndexError: invalid index to scalar variable.

你觉得有什么问题吗?顺便说一下,我的版本是;

4.5.5.)

  • cvlib:
  • Python: 3.8.8 (conda env)
  • openCV: 4.0.1 (但使用cv2检查conda promt时版本为0.2.6

)

EN

回答 1

Stack Overflow用户

发布于 2022-05-31 08:38:51

图像的特定位置可能会造成该错误。我的意思是图像找不到。因此,尝试给出图像的特定位置+图像名称及其确切的扩展。例:"cars.jpg“和"cars.jpeg”不同。此外,图像可能无效或损坏。试着分别检查图像。我试过你提供的代码,它对我有用。

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

img = cv2.imread('/specific location/cars.jpg')
img1 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.figure(figsize=(10, 10))
plt.axis('off')
plt.imshow(img1)
plt.show()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70741386

复制
相关文章

相似问题

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