【问题标题】:AttributeError: 'module' object has no attribute 'createFisherFaceRecognizer'AttributeError:“模块”对象没有属性“createFisherFaceRecognizer”
【发布时间】:2017-06-20 11:05:33
【问题描述】:

我使用的是 Ubuntu 16.04 (64bit) 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()

【问题讨论】:

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


    【解决方案1】:

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

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

    另外,我必须使用 cv2.face.FisherFaceRecognizer_create()

    【讨论】:

      【解决方案2】:

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

      来源

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

      【讨论】:

      • 它给了我这个错误:AttributeError: 'module' object has no attribute 'face'
      • 这很奇怪。我得到了与 OpenCV 3.1 完全相同的配置。如果我从 cv2.face 模块调用 createFisherFaceRecognizer(),对我来说非常适合。
      • 谢谢,我发现我没有正确卸载我的旧 OpenCV,按照说明再次正确下载并添加 cv2.face 后,它可能工作了!
      【解决方案3】:

      我遇到了同样的问题并通过这种方式解决了它:

      self.model = cv2.face.FisherFaceRecognizer_create()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-18
        相关资源
        最近更新 更多