我有一个opencv 3的python函数。它在没有虚拟环境的情况下工作。我也在venvv上安装了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 Bit上使用python 2.7运行Opencv3
从OpenCV 3开始,您必须获得并构建opencv_contrib repo。然后你可以使用子模块“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()
了
对我来说最简单的方法是使用anaconda包:
conda install -c menpo opencv3=3.1.0
安装后,使用cv2.face.createLBPHFaceRecognizer()
或其他面部识别器。希望这可以帮助
运行此命令以安装contrib
python -m pip install opencv-contrib-python
完成此操作后,请使用此属性
recoginizer = cv2.face.LBPHFaceRecognizer_create()
对于3.6使用的python版本:
rec = cv2.face.LBPHFaceRecognizer_create();
对于使用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()
对于Python 3.6.x版,请执行以下操作:
打开终端并安装opencv-contrib-python
python -m pip install opencv-contrib-python
当你完成它使用它
recoginizer = cv2.face.LBPHFaceRecognizer_create()
对于更多选项,您可以这样做:
print(help(cv2.face))