2015-11-09 1 views
8

У меня есть функция python с opencv 3. Обычно она работает без виртуальной среды. Также я установил opencv на venv из: pyimagesearch. я пытаюсь запустить эту функцию питона на venv, то он получает сообщение об ошибке:Opencv3 и Python 2.7 на виртуальном окружении - AttributeError: объект 'module' не имеет атрибута 'createLBPHFaceRecognizer'

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

без venv в терминале:

[email protected] ~/Masaüstü/face_recognizer $ python face_recognizer.py 
Yol :./sinif/114.jpg. 
114 Yuz Tanindi 12 

с venv в терминале:

[email protected] ~/Masaüstü/face_recognizer $ workon cv 
(cv)[email protected] ~/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' 

мой питона коды:

#!/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 бит, Opencv3, python2.7

ответ

10

Из OpenCV 3 вы должны получить и построить репозиторий opencv_contrib. Затем вы можете использовать подмодуль «лицо».

Помощь на модуле cv2.face в 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()

+0

Огромное спасибо, я не видел подмодуль. поэтому он работает сейчас. – Gkan

+0

Как его построить для Windows? –

+0

Официальный сайт OpenCV имеет очень четкое представление об установке. [Нажмите здесь] (http://docs.opencv.org/3.0-beta/doc/tutorials/introduction/windows_install/windows_install.html) – Rick

4

Самый простой способ для меня, чтобы использовать пакет анаконды: conda install -c menpo opencv3=3.1.0 После установки, использование CV2 .face.createLBPHFaceRecognizer() или другие распознаватели лица. Надеюсь, это поможет

+0

Как установить conda? – Dev

+0

[Refer anaconda docs] (https://conda.io/docs/install/quick.html) –

0

Для пользователей Windows, использующих python 3, вы можете получить opencv_contrib от here. Моя система 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 

Примечание: Используйте команду, похожую на файл, который вы только что скачали и убедитесь, чтобы удалить старую версию перед установкой новой версии с вклад. мне пришлось бежать:

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

, прежде чем сделать новую установку.

Затем убедитесь, что он успешно

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

Вместо createLBPHFaceRecognizer(), вы должны использовать LBPHFaceRecognizer_create()

0

попробовать этот

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

python -m pip install opencv-contrib-python

после этого делается использовать этот атрибут

recoginizer = cv2.face.LBPHFaceRecognizer_create()