因此,我查看了有关stackoverflow中此错误的其他问题,但未能得到答案。我有以下代码:
def getKnownFace():
unknown_image = face_recognition.load_image_file("filename.jpg")
unknown_face_encoding = face_recognition.face_encodings(unknown_image)[0]
matches = face_recognition.compare_faces(known_face_encodings, unknown_face_encoding)
name = ''
if True in matches:
first_match_index = matches.index(True)
name = known_face_names[first_match_index]
print(name)
return name
这就是我得到的错误:
File "D:/Universitet/CheckKnownFace.py", line 100, in <module>
getKnownFace()
File "D:/Universitet/CheckKnownFace.py", line 91, in getKnownFace
if True in matches:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
火柴
<class 'list'>
[array([ True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True])]
我用.any()
和.all()
尝试了几个变体,但我总是得到一个错误,即bool类型或列表类型没有all()或any()方法
我该怎么做才能让它正常工作
问题是
matches
是一个包含numpy
数组中单个元素的列表。简单地改变if True in matches
到
if True in matches[0]
当然,这取决于匹配项是否包含多于numpy数组的内容。如果是这样,您可能必须执行for循环或提供其他逻辑,这取决于您想要实现的目标
相关问题 更多 >
编程相关推荐