【问题标题】:Opencv3 and Python 2.7 on Virtual Environment - AttributeError: 'module' object has no attribute 'createLBPHFaceRecognizer'虚拟环境上的 Opencv3 和 Python 2.7 - AttributeError:“模块”对象没有属性“createLBPHFaceRecognizer”
【发布时间】:2016-02-10 18:31:36
【问题描述】:

我有一个带有 opencv 3 的 python 函数。它可以在没有虚拟环境的情况下工作。另外我在 venv 上安装了 opencv,来自:pyimagesearch。我试图在venv上运行那个python函数,然后它给出了一个错误:

AttributeError: 'module' object has no attribute 'createLBPHFaceRecognizer'

终端中没有venv:

gkhan@Gkan ~/Masaüstü/face_recognizer $ python face_recognizer.py
Yol :./sinif/114.jpg.
114 Yuz Tanindi 12

在终端中使用 venv:

gkhan@Gkan ~/Masaüstü/face_recognizer $ workon cv
(cv)gkhan@Gkan ~/Masaüstü/face_recognizer $ python face_recognizer.py
Traceback (most recent call last):
  File "face_recognizer.py", line 15, in <module>
    recognizer = cv2.createLBPHFaceRecognizer()
AttributeError: 'module' object has no attribute 'createLBPHFaceRecognizer'

我的python代码:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import cv2, os
import numpy as np
from PIL import Image

# For Test
if 0==0:

    cascadePath = "haarcascade_frontalface_default.xml"
    faceCascade = cv2.CascadeClassifier(cascadePath)

    recognizer = cv2.createLBPHFaceRecognizer()
...

我在 Linux Mint 64 位上使用 python 2.7 运行 Opencv3

【问题讨论】:

    标签: python python-2.7 opencv virtualenv face-recognition


    【解决方案1】:

    从 OpenCV 3 开始,您必须获取并构建 opencv_contrib 存储库。然后就可以使用子模块“face”了。

    关于 cv2 中的模块 cv2.face 的帮助:

    NAME
        cv2.face
    
    FILE
        (built-in)
    
    FUNCTIONS
        createEigenFaceRecognizer(...)
            createEigenFaceRecognizer([, num_components[, threshold]]) -> retval
    
        createFisherFaceRecognizer(...)
            createFisherFaceRecognizer([, num_components[, threshold]]) -> retval
    
        createLBPHFaceRecognizer(...)
            createLBPHFaceRecognizer([, radius[, neighbors[, grid_x[, grid_y[, threshold]]]]]) -> retval
    

    瞧~你现在可以使用cv2.face.createLBPHFaceRecognizer()

    【讨论】:

    • 非常感谢,我没有看到人脸子模块。所以它现在可以工作了。
    • 如何为 Windows 构建它??
    • OpenCV的官网对安装有非常清晰的介绍。 Click here
    【解决方案2】:

    对我来说最简单的方法是使用 anaconda 包:

    conda install -c menpo opencv3=3.1.0
    

    安装后,使用cv2.face.createLBPHFaceRecognizer() 或其他人脸识别器。希望这会有所帮助

    【讨论】:

    • 如何安装conda?
    【解决方案3】:

    试试这个

    运行这个命令来安装contrib

    python -m pip install opencv-contrib-python

    完成后 使用这个属性

    recoginizer = cv2.face.LBPHFaceRecognizer_create()
    

    【讨论】:

      【解决方案4】:

      对于 3.6 使用的 python 版本:

      rec = cv2.face.LBPHFaceRecognizer_create();
      

      【讨论】:

      • 你的意思是OpenCV 3.0及以上版本。
      【解决方案5】:

      对于使用 python 3 的 windows 用户,您可以从here 获取 opencv_contrib。我的系统是 64 位的,所以 opencv_python‑3.3.0+contrib‑cp36‑cp36m‑win_amd64.whl 是我使用的。如果您是 32 位,请选择 32 位版本。

      打开命令提示符并导航到下载文件夹并使用命令

      pip install opencv_python-3.3.0+contrib-cp36-cp36m-win_amd64.whl
      

      注意:使用类似于您刚刚下载的文件的命令,并确保在使用 contrib 安装新版本之前卸载旧版本。 我不得不跑:

      pip uninstall opencv_python-3.3.0-cp36-cp36m-win_amd64.whl
      

      在进行新安装之前。

      然后确保它成功

      >>>import cv2
      >>>cv2.face
      <module 'cv2.face'>
      

      您必须使用 LBPHFaceRecognizer_create() 而不是 createLBPHFaceRecognizer()

      【讨论】:

        【解决方案6】:

        对于 Python 3.6.x 版,请执行以下操作:

        打开你的终端并安装 opencv-contrib-python

        python -m pip install opencv-contrib-python
        

        当你完成它时使用它

        recoginizer = cv2.face.LBPHFaceRecognizer_create()
        

        对于更多选项,您可以这样做:

        print(help(cv2.face))
        

        【讨论】:

          猜你喜欢
          • 2017-09-03
          • 2017-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-09
          • 2013-07-05
          • 2021-08-28
          • 2011-10-25
          相关资源
          最近更新 更多