File "3.py", line 9, in <module> recognizer.read('./trainner/trainner.yml') AttributeError: 'cv2.face_LBPHFaceRecognizer' object has no attribute 'read'
这个错误是由于cv2.face_LBPHFaceRecognizer
对象没有read()
方法导致的。在OpenCV 4.0及以上版本中,LBPHFaceRecognizer的read()
方法已被移除。相应的,使用read()
方法的代码应该改为使用cv2.face.load()
方法。你可以使用以下代码:
recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.load('./trainner/trainner.yml')
这个代码将创建一个cv2.face_LBPHFaceRecognizer
对象,然后使用load()
方法从文件中读取训练好的模型。
Traceback (most recent call last): File "D:\PyCharm\人工智能练习程序\测试1\GUI.py", line 5, in <module> from FaceRecognition import * File "D:\PyCharm\人工智能练习程序\测试1\FaceRecognition.py", line 4, in <module> recognizer.read('./Model/trainer-2023.yml') cv2.error: OpenCV(4.1.2) C:\projects\opencv-python\opencv_contrib\modules\face\src\facerec.cpp:61: error: (-2:Unspecified error) File can't be opened for reading! in function 'cv::face::FaceRecognizer::read'
这个错误提示是因为FaceRecognition.py
中的recognizer.read()
方法无法读取指定的文件。根据错误提示,是因为文件无法打开,可能是以下原因导致的:
文件路径不正确,无法找到文件。可以检查一下路径是否正确,是否存在该文件。
文件权限问题,当前用户没有权限访问该文件。可以检查一下当前用户对该文件是否有读取权限。
文件损坏。可以尝试重新下载或复制一份该文件,替换原来的文件。
综上所述,可以逐一排查以上原因,找到并解决问题。
File "3.py", line 12, in <module> recognizer = cv2.face.LBPHFaceRecognizer_create() AttributeError: 'module' object has no attribute 'LBPHFaceRecognizer_create'
这个错误通常是由于OpenCV版本问题导致的。在OpenCV 4.0及以上版本中,LBPHFaceRecognizer的创建方法已经改变了,应该使用cv2.face.LBPHFaceRecognizer_create()
。而在OpenCV 3.x版本中,可以使用cv2.face.createLBPHFaceRecognizer()
。
你可以通过以下代码检查OpenCV版本:
import cv2
print(cv2.__version__)
如果输出的版本号是4.0及以上,那么你应该使用cv2.face.LBPHFaceRecognizer_create()
创建对象。如果输出的版本号是3.x,那么你应该使用cv2.face.createLBPHFaceRecognizer()
创建对象。
相关推荐
















