Opencv3 and Python 2.7 on Virtual Environment - AttributeError: 'module' object has no attribute 'createLBPHFaceRecognizer'

Opencv3 and Python 2.7 on Virtual Environment - AttributeError: 'module' object has no attribute 'createLBPHFaceRecognizer'

我有一个 opencv 3 的 python 函数。它在没有虚拟的情况下工作 environment.Also 我在 venv 上安装了 opencv 来自:pyimagesearch。我正在尝试 运行 python 在 venv 上运行,然后出现错误:

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()
...

我 运行宁 Opencv3 与 python 2.7 在 Linux Mint 64 位

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

帮助模块 cv2.face in cv2:

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()

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

conda install -c menpo opencv3=3.1.0

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

对于使用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()

试试这个

运行 此命令用于安装 contrib

python -m pip install opencv-contrib-python

完成后 使用此属性

recoginizer = cv2.face.LBPHFaceRecognizer_create()

对于 python 版本 3.6 使用:

rec = cv2.face.LBPHFaceRecognizer_create();

对于 Python 版本 3.6.x,执行此操作:

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

python -m pip install opencv-contrib-python

当你完成它时使用这个

recoginizer = cv2.face.LBPHFaceRecognizer_create()

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

print(help(cv2.face))