Opencv3 и Python 2.7 в виртуальной среде-AttributeError: объект "module" не имеет атрибута "createLBPHFaceRecognizer"

у меня есть функция python с opencv 3. он работает без виртуальной среды.Также я установил opencv на venv из: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 бит

6 ответов


из OpenCV 3 Вы должны получить и построить opencv_contrib РЕПО. Затем вы можете использовать подмодуль "лицо".

справка по модулю cv2.лицо в 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() или другие распознаватели лиц. Надеюсь, это поможет


попробуй такое

запустите эту команду, чтобы установить contrib

python-m pip установить opencv-contrib-python

после этого используйте этот атрибут

recoginizer = cv2.face.LBPHFaceRecognizer_create()

для версий python как 3.6 использует:

rec = cv2.face.LBPHFaceRecognizer_create();

для пользователей windows, использующих python 3, Вы можете получить 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. Мне пришлось бежать:--8-->

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

перед выполнением новой установки.

тогда убедитесь, что это успешно

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

вместо createLBPHFaceRecognizer () необходимо использовать 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))