首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行opencv时遇到KeyError问题

执行opencv时遇到KeyError问题
EN

Stack Overflow用户
提问于 2019-04-27 10:01:26
回答 1查看 374关注 0票数 0

我目前正在学习OpenCV和tryna自己做人脸识别。

我在youtube上看了几个视频,最后把它写成了代码,但每次我运行程序时,它总是显示出来

代码语言:javascript
复制
print(labels[id_])
KeyError: 1

我花了几天时间寻找如何解决Keyerror问题,但我真的找不到答案。

以下是代码

代码语言:javascript
复制
labels = {"person_name": 1}

with open("labels.pickle", 'rb') as f:
    og_labels = pickle.load(f)

labels = {v: k for k, v in og_labels.items()}

cap = cv2.VideoCapture(0)

while (True):
    ret, frame = cap.read()

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=5)
    for (x, y, w, h) in faces:

        id_,conf = recognizer.predict(roi_gray)
        if conf >= 4 and conf <= 85:

            if id_ == 1:
                print(id_)
            print(labels[id_])

我不知道这是不是一个问题,因为我有一个人脸训练文件(可以运行)。如果上面的代码没有问题,我认为这应该是一个人脸训练问题。我可以提供更多的代码。当然,如果你有相关的视频,你也可以推荐给我。

EN

回答 1

Stack Overflow用户

发布于 2019-04-27 10:16:20

有几件事:

  1. 你正在用labels = {v: k for k, v in og_labels.items()}覆盖labels = {"person_name": 1}labels = {"person_name": 1}
  2. You试图访问labels[1]的目的是什么,这与labels['1']不同。为什么不在print(labels[id_])之前打印/pprint labels的内容,看看实际的密钥是什么?
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55876644

复制
相关文章

相似问题

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