attributeerror: модуль «cv2.face» не имеет атрибута «createlbphfacerecognizer»

Итак, я делаю небольшой личный проект, но я продолжаю получать эту ошибку, когда пытаюсь создать распознаватель. у меня есть opencv-contrib и все такое. Кто-нибудь знает, что происходит? код размещен ниже

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

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

recognizer = cv2.face.createLBPHFaceRecognizer()

он попадает в эту последнюю строку. Я уже пробовал переустанавливать все модули. Не совсем уверен, что еще делать. Странно то, что это работает на моем ноутбуке, но не на моем рабочем столе. У них обоих одни и те же модули, одна и та же версия Python и один и тот же код.


person Zack Shadid    schedule 12.08.2017    source источник
comment
Как вы скомпилировали свой opencv_contrib?   -  person eshirima    schedule 13.08.2017
comment
отметьте ответ Питера как правильный один мужчина   -  person Sahil    schedule 29.05.2018


Ответы (18)


Была такая же проблема. Использовать:

recognizer = cv2.face.LBPHFaceRecognizer_create()

Это сработало для моей программы.

person Peter    schedule 14.08.2017
comment
Это исправило это! Спасибо, а где вы нашли эту информацию, если не возражаете, если я спрошу? Я не мог найти это нигде. - person Zack Shadid; 15.08.2017

В pip install opencv-python по умолчанию отсутствуют некоторые модули для предоставленных библиотек, поэтому вам нужно pip install opencv-contrib-python

person Simbarashe Timothy Motsi    schedule 27.04.2018

В Windows 7 я смог решить проблему, просто удалив и переустановив opencv:

pip uninstall opencv-contrib-python
pip install opencv-contrib-python

Распознаватель вызывается:

recognizer = cv2.face.LBPHFaceRecognizer_create()
person Peter    schedule 04.08.2018

Попробуйте обновить свой opencv с помощью «python -m pip install opencv-contrib-python» ps: вам нужно удалить репозиторий CV2 из представителя Python, а затем запустить эту команду (в окнах CMD), если она не работает

person tawfik mourchid    schedule 07.02.2018

Попробуйте использовать это:

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

# Path for face image database
path = 'dataset'
recognizer = cv2.face_LBPHFaceRecognizer.create()
detector = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
person Sebastian    schedule 10.03.2018

У меня была эта проблема с запуском opencv версии 3.4.1. Вот что я сделал.

СПЕЦИФИКАЦИИ: Raspberry pi 3B, ОС: Raspbian, версия: 9 (Stretch), Python 3, версия opencv 3.4.1

Проверить версию opencv в python

import cv2

cv2.__version__

1) sudo pip install opencv-contrib-python

* После этого я не мог импортировать cv2 в python, пока не установил следующее.

2) sudo apt-get update

3) sudo apt-get install libhdf5-dev

4) sudo apt-get update

5) sudo apt-get install libhdf5-serial-dev libqtgui4 libqt4-test

person WannaB_robot    schedule 12.07.2018

Я исправил эту проблему двумя командами:

Первый: sudo pip3 uninstall opencv-contrib-python

Второй: sudo python3 -m pip install opencv-contrib-python==3.3.0.9

Это исправило мои проблемы. Надеюсь, это поможет кому-то! Кроме того, если вы используете python2, замените «pip3» на «pip» и «python3» на «python».

person Chandan Gupta    schedule 25.07.2018

  • Удалите этот пакет (opencv-python) командой: -
  • pip удалить opencv-python
  • Установите библиотеку opencv-contrib python с помощью команды: -
  • pip install opencv-contrib-python
  • затем добавьте или проверьте: -
  • распознаватель = cv2.face_LBPHFaceRecognizer.create()
  • Это будет работать нормально
  • Проблема была в библиотеке opencv-python cv2.face отсутствует, поэтому она показывает проблему отсутствия атрибута, поэтому установите новую библиотеку, удалив предыдущую, если она установлена..
person NirdoSh Thakur    schedule 15.10.2019

попробуй это у меня сработало

pip install --force-reinstall opencv-contrib-python==4.1.2.30
person yogesh jadhav    schedule 01.04.2020

Вы используете Opencv 3.x, в новой версии удалено несколько модулей. У вас есть два варианта: 1. Добавить модуль opencv_contrib в существующую версию opencv 3.x. Вот ссылка https://github.com/opencv/opencv_contrib 2. вы можете использовать более старые версии Opencv. Как opencv 2.4.x

person Aquib    schedule 14.08.2017

откройте cmd , затем --> pip установите opencv-contrib-python

person Yuresh Karunanayake    schedule 07.05.2018

Я исправил эту проблему, установив: sudo pip install opencv-contrib-python.

Затем найдите правильный формат.

python2 по умолчанию

В основном проблема в том, что python3 и python2 имеют разный формат кода.

recognizer = cv2.face.LBPHFaceRecognizer_create()

Это формат python2.

recognizer = cv2.face.createLBPHFaceRecognizer()

Это формат python3

person Closed Eagle    schedule 16.06.2019

Даже у меня была эта проблема, когда я запускал код с помощью Jupyter Notebook. Если вы используете его на Jupyter Notebook , загрузите его как файл pyhton(.py) и попробуйте запустить его в Anaconda Prompt или в командной строке. Это решило проблему для меня. Благодарю вас.

person Subham Sarkar    schedule 26.07.2019

Установка opencv-contrib-python решила проблему. Я установил только opencv-python, после установки opencv-contrib-python решил проблему.

pip install opencv-contrib-python
person Aashutosh Kumar    schedule 14.04.2020

Если вы используете python3, используйте pip3 вместо pip: pip3 install opencv-contrib-python

Тогда вы можете просто сделать: recognizer = cv2.face.LBPHFaceRecognizer_create()

person Harsh Titoria    schedule 21.04.2020

записывать

pip install opencv-contrib-python --upgrade

если выдает ошибку то пишите

pip install opencv-contrib-python --user

это будет работать нормально для cv2.face.LBPHFaceRecognizer_create()

person inhok    schedule 15.01.2021

В pip install opencv-python-contrib по умолчанию отсутствуют некоторые модули для предоставленных библиотек, поэтому вам нужно pip install opencv-contrib-python --upgrade

Это загрузит файл размером 41,5 МБ и установит его в папку пакета python, после чего вы можете проверить, просто сначала импортировав cv2, а затем набрав print(dir(cv2.face)), который вернет список атрибутов в cv2.face, который будет включить createlbphfacerecognizer

person Lusifer-Stark    schedule 27.06.2021
comment
Добро пожаловать в stackoverflow! Не совсем понятно, что ваш ответ добавляет к уже опубликованным ответам, которые охватывают большую часть, если не все, что вы уже упоминали здесь. Пожалуйста, просмотрите stackoverflow.com/help/how-to-answer. Для форматирования кода также полезно опубликуйте полный функциональный код, используя блоки кода, выделенные синтаксисом, а не обычный текст, см. stackoverflow.com/editing-help#syntax-highlighting Удачи! - person Matthias C. M. Troffaes; 27.06.2021

person    schedule
comment
Добро пожаловать в Stack Overflow! Хотя этот код может решить проблему, включая объяснение того, как и почему это решает проблему, действительно поможет улучшить качество вашего сообщение и, вероятно, приведет к большему количеству голосов. Помните, что вы отвечаете на вопрос для будущих читателей, а не только для того, кто задает сейчас. Пожалуйста, отредактируйте свой ответ, чтобы добавить пояснения и указать, какие ограничения и предположения применяются. Из обзора - person double-beep; 20.05.2020