python - IndexError:使用 OpenCV 和 FaceRecognition 在 Python 中列出超出范围的索引
问题描述
import cv2
import numpy as np
import face_recognition
import os
path = 'Images'
images = []
classNames = []
myList = os.listdir(path)
print(myList)
for cl in myList:
curImg = cv2.imread(f'{path}/{cl}')
images.append(curImg)
classNames.append(os.path.splitext(cl)[0])
print(classNames)
def findEncodings(images):
encodeList = []
for img in images:
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
encode = face_recognition.face_encodings(img)[0]
encodeList.append(encode)
return encodeList
encodeListKnown = findEncodings(images)
print(len(encodeListKnown))
我现在真的看不到我的错误...控制台打印我->
C:\Users\davut\PycharmProjects\QRCodeOpenCV\venv\Scripts\python.exe C:/Users/davut/PycharmProjects/QRCodeOpenCV/AttendanceProject.py ['Armagan.jpeg', 'Bill-Gates.jpg', 'Elon- Musk.jpg'、'Elon-Test.jpg'、'Gizem (1).jpeg'、'Muenster.jpg'、'Oezi.jpeg'、'Sude.jpeg'] ['Armagan'、'Bill-Gates' , 'Elon-Musk', 'Elon-Test', 'Gizem (1)', 'Muenster', 'Oezi', 'Sude'] Traceback(最近一次调用最后):文件“C:/Users/davut/PycharmProjects /QRCodeOpenCV/AttendanceProject.py”,第 25 行,在 encodeListKnown = findEncodings(images) 文件“C:/Users/davut/PycharmProjects/QRCodeOpenCV/AttendanceProject.py”,第 21 行,在 findEncodings encode = face_recognition.face_encodings(img)[ 0] IndexError:列表索引超出范围
解决方案
好的解决方案是,在使用 face_recognition 时不要使用没有人脸的测试照片......
推荐阅读
- javascript - 我们将 e.target.name 写入状态定义语句的目的是什么?
- java - Java“错误”:“未找到”,“消息”:“没有可用消息”,
- r - 如何更快地获得数据集中每个点到其他点的平均曼哈顿距离
- java - Android canvas.drawText 使用paint显示坏颜色
- java - 我的录音机将旧录音替换为新录音,而不是创建新文件
- dependency-injection - 在 application.cfc FW1 中注入依赖项
- node.js - 使用 node-postgres 与数据库失去连接
- flutter - 使用刷新指示器 Flutter 无限滚动 HTTP JSON
- python - JMESPath 在嵌套数据中搜索键
- java - Android dagger2 使用 Factory 将意图注入 viewModel