AttributeError:'模块'对象没有属性' createFisherFaceRecognizer'

时间:2017-02-03 06:30:55

标签: python python-2.7 opencv ubuntu-16.04 face-recognition

我使用的是Ubuntu 16.04(64位)python2.7 Open-CV 3.1.0 我已按照下载Repository for Open-CV额外模块的步骤来激活此功能 https://github.com/opencv/opencv_contrib, 但是我得到了同样的错误,我也尝试使用最新的Open-CV 3.2.0而不是3.1.0,但我有同样的错误:

AttributeError: 'module' object has no attribute 'createFisherFaceRecognizer'.

我的代码部分:

import numpy as np
import cv2
import sys
import os
class TrainFisherFaces:
    def __init__(self):
        cascPath = "haarcascade_frontalface_default.xml"
        self.face_cascade = cv2.CascadeClassifier(cascPath)
        self.face_dir = 'data'
        self.face_name = sys.argv[1]
        self.path = os.path.join(self.face_dir, self.face_name)
        if not os.path.isdir(self.path):
            os.mkdir(self.path)
        self.model = cv2.createFisherFaceRecognizer()

3 个答案:

答案 0 :(得分:2)

似乎 createFisherFaceRecognizer()位于python中的子模块 cv2.face 中。要访问它,您应该 cv2.face.createFisherFaceRecognizer()

<强>来源:

改编自教程example,用于c ++中的人脸识别。我把问题安装在问题中并进行了测试。

答案 1 :(得分:2)

我按照这里的说明操作: https://pypi.python.org/pypi/opencv-contrib-python

只需要这样做:pip install opencv-contrib-python

另外,我不得不使用cv2.face.FisherFaceRecognizer_create()

答案 2 :(得分:0)

我遇到了同样的问题,并通过以下方式解决了该问题:

self.model = cv2.face.FisherFaceRecognizer_create()