recognizer.read('./trainner/trainner.yml') names = ['lyn','wtq','user1','user2','user3'] for i in range(N): recognizer.train(images[i], labels[i]) #调用摄像头 cam = cv2.VideoCapture(0) minW = 0.1*cam.get(3) minH = 0.1*cam.get(4) while True: ret,img
时间: 2024-01-02 15:02:58 浏览: 28
在这段代码中,`recognizer.read('./trainner/trainner.yml')`是读取已经训练好的人脸识别模型,`names`是一个列表,包含了每个人脸对应的名称或ID。`for i in range(N): recognizer.train(images[i], labels[i])`是在训练模型之前的一些代码,其中`images`是训练集中的图像,`labels`是图像对应的标签或类别。
在这之后,代码调用了摄像头,并设置了最小宽度和高度。进入了一个while循环,不断地读取摄像头的图像,并进行人脸识别。
相关问题
recognizer = cv2.face.createLBPHFaceRecognizer() recognizer.load('./trainner/trainner.yml')
在CV 3.x版本中,`cv2.face.createLBPHFaceRecognizer()`方法可以用来创建LBPHFaceRecognizer对象。所以你可以使用以下代码来读取训练好的模型:
```
recognizer = cv2.face.createLBPHFaceRecognizer()
recognizer.load('./trainner/trainner.yml')
```
这个代码将创建一个`cv2.face_LBPHFaceRecognizer`对象,然后使用`load()`方法从文件中读取训练好的模型。
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()`方法从文件中读取训练好的模型。