openCV Error module 'cv2.face' has no attribute 'createEigenFaceRecognizer' - python

I am using python 3.7 and latest version of openCV. When i try to create an EigenFaceRecognizer. This error pops up "module 'cv2.face' has no attribute createEigenFaceRecognizer. I have got this bellow code from a Gitub repo.
recognise = cv2.face.createEigenFaceRecognizer(15, 4000)
recognise.load("Recogniser/trainingDataEigan.xml")

I believe the face module is in the opencv-contrib library. You can install it with
pip uninstall opencv-contrib-python
pip install opencv-contrib-python --no-cache-dir
Also the function got changed to this. load was replaced with read
import cv2
recognise = cv2.face.EigenFaceRecognizer_create()
recognise.read("Recogniser/trainingDataEigan.xml")

Related

Import Cv2 not working despite opencv installed

I have installed OpenCV with the command pip install opencv-contrib-python and when I run the command pip list I see opencv-contrib-python has been installed and yet import cv2 does not work for me and it throws
Traceback (most recent call last):
File "\[filename here\]", line 1, in \<module\>
import cv2
ImportError: No module named cv2
and I have tried uninstalling and reinstalling OpenCV and it still does not work. I tried different development environments like Pycharm and visual studio code. I also have my pip upgraded and my OpenCV is version 4.5.5 which is the latest version. I have tried using python 3.10 and 3.7 but the same error still shows. I have also tried using
import sys
sys.path.append('/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages')
which was recommended in some answers and I have tried just installing opencv-python and using that and the same error still shows. I checked and I have cv2 in
my folder
but despite this, it keeps showing no module named cv2 every time I try to run import cv2
I use macOS Monterey version 12.2.1 and for my terminal, I use Darwan OS which is a Linux distro.
I tried:
pip install opencv-python
pip install opencv-contrib-python
putting this at the first lines of code:
import sys
sys.path.append('/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages')
You have to use python2.7. As the manual says: "Currently, only the Python 2 version of the cv2 module is built and included in the latest release."
You can only use python3 if you manually build from source code.

problem in upgrading scikit-image version

On my system spyder version '0.13.1' is installed and I want to use
from skimage.filters import unsharp_mask
the error comes:
ImportError: cannot import name 'unsharp_mask
then I treid to upgrade the version using:
1st passed;
!pip install scikit-image
then I passed:
!pip install --upgrade scikit-image
then still version is same which is '0.13.1'.
What should I do?
The problem is resloved with the help of Anaconda official video tutorial :
https://anaconda.cloud/tutorials/getting-started-with-anaconda-individual-edition?source=install

Cannot reinstalling igraph

I installed igraph on my windows server using pip:
pip install python_igraph-0.7.1.post6-cp37-cp37m-win_amd64.whl
After its installation, I could not import it into Spyder (AttributeError: 'module' object has no attribute 'Graph') but I could import and use it in Jupyter Notebook...!!!!
After running some analysis with my graph I wanted to draw it, so I searched trough the net and found this link :
So I thought I should install "cairocffi" and installed it:
pip install cairocffi
After installing "cairocffi", I couldn't neither draw my graph, nor my igraph package works anymore.
when I imported the igraph again I got the below error:
I tried uninstalling the igraph, so that I could install it again, but the above error is still there.
So I searched the net to see whether I can download those specified libraries, but found nothing. what should I do?

attributeerror: module 'cv2.face' has no attribute 'createlbphfacerecognizer'

So i'm doing a little personal project but i keep getting this error when I try to create the recognizer. i have opencv-contrib and everything. Does anyone know whats going on? code posted below
import cv2, os
import numpy as np
from PIL import Image
cascadePath = "haarcascade_frontalface_default.xml"
faceCascade = cv2.CascadeClassifier(cascadePath)
recognizer = cv2.face.createLBPHFaceRecognizer()
it gets caught on that last line. I've tried reinstalling all modules already. Not really sure what else to do. The weird thing is it works on my laptop but not my desktop. They both have the same modules, same python release and running the exact same code.
Had the same problem. Use:
recognizer = cv2.face.LBPHFaceRecognizer_create()
It worked for my program.
Under Windows 7, I was able to resolve the issue by simply uninstalling and re-installing opencv:
pip uninstall opencv-contrib-python
pip install opencv-contrib-python
The recogniser is called by:
recognizer = cv2.face.LBPHFaceRecognizer_create()
There are some missing modules for contributed libraries in the default pip install opencv-python so you need pip install opencv-contrib-python
try this it worked for me
pip install --force-reinstall opencv-contrib-python==4.1.2.30
Try to update your opencv by "python -m pip install opencv-contrib-python"
ps: you have to delete the CV2 repository from the Python rep and then run this command (in the CMD windows) if it doesn't work
Try to use this:
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")
I had this problem running opencv Version 3.4.1. Here is what I did.
SPECS:
Raspberry pi 3B, OS: Raspbian, Version: 9 (Stretch), Python 3, opencv Version 3.4.1
Check opencv version in python
import cv2
cv2.__version__
1) sudo pip install opencv-contrib-python
*After this I could not import cv2 in python until I installed the following.
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
I fixed this issue with two commands:
First: sudo pip3 uninstall opencv-contrib-python
Second: sudo python3 -m pip install opencv-contrib-python==3.3.0.9
This fixed my issues. Hope it helps somebody!
Also, if you are using python2, replace “pip3” with “pip” and “python3” with “python”
Uninstall this package (opencv-python) by command :-
pip uninstall opencv-python
Install the library opencv-contrib python using command :-
pip install opencv-contrib-python
then add or check :-
recognizer = cv2.face_LBPHFaceRecognizer.create()
It will work fine
The problem was in opencv-python library cv2.face is not present so it shows attribute missing problem, so install new lib by uninstalling previous one if installed..
recognizer = cv2.face_LBPHFaceRecognizer.create()
You are using Opencv 3.x, in the new version few modules has been removed. You have two options:
1. Add opencv_contrib module to your existing opencv 3.x version.
Here's the link https://github.com/opencv/opencv_contrib
2.you can use older versions of Opencv. Like opencv 2.4.x
open cmd , then --> pip install opencv-contrib-python
I fixed this issue by installing:
sudo pip install opencv-contrib-python.
Then look for correct format.
python2 is default
Basically the problem is that python3 and python2 have different format of code.
recognizer = cv2.face.LBPHFaceRecognizer_create()
This is the format of python2.
recognizer = cv2.face.createLBPHFaceRecognizer()
This is the format of python3
Even I had this problem when I ran the code using Jupyter Notebook.
If you are running it on Jupyter Notebook , then download it as pyhton(.py) file and try to run it in Anaconda Prompt or Command Prompt. This solved the problem for me.
Thank You.
Installing opencv-contrib-python solved the issue.
I had installed only opencv-python, After Installing opencv-contrib-python, solved the issue.
pip install opencv-contrib-python
If you are using python3 use pip3 instead of pip:
pip3 install opencv-contrib-python
Then you can simply do:
recognizer = cv2.face.LBPHFaceRecognizer_create()
write
pip install opencv-contrib-python --upgrade
if gives error then
write
pip install opencv-contrib-python --user
it will work fine for cv2.face.LBPHFaceRecognizer_create()
There are some missing modules for contributed libraries in the default pip install opencv-python-contrib so you need pip install opencv-contrib-python --upgrade
This will download a 41.5MB file and install that in your python package folder , after that you can check by simply First "import cv2" then typing "print(dir(cv2.face))" that will return a list of attributes in cv2.face which will include "createlbphfacerecognizer"
I am also facing an same issue after installation of these below command in my command prompt.
> pip install opencv-contrib-python
> pip install opencv-contrib-python --user
Facing this below error in jupyter notebook.
Training done ---------------
--------------------------------------------------------------------------- AttributeError Traceback (most recent call
last) ~\AppData\Local\Temp/ipykernel_4424/3540845204.py in
40 labels = np.array(labels)
41
---> 42 face_recognizer = cv.face.LBPHFaceRecognizer_create()
43
44 # Train the Recognizer on the features list and the labels list
AttributeError: module 'cv2' has no attribute 'face'
After i am tried with visual studio code but make sure your running with this below confirmation commands in your command prompt or terminal.
I will suggest you to try in command prompt.
Microsoft Windows [Version 10.0.19043.1348]
(c) Microsoft Corporation. All rights reserved.
C:\Users\Admin>python
Python 3.10.1 (tags/v3.10.1:2cd268a, Dec 6 2021, 19:10:37) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> print(cv2.__version__)
4.5.5
>>> **recognizer = cv2.face.LBPHFaceRecognizer_create()**
>>> **print(recognizer)**
**<face_LBPHFaceRecognizer 000001F890F3D8D0>**
>>>
After successfully fixed this issue, i have got these below outputs.
on.exe' 'c:\Users\Admin\.vscode\extensions\ms-python.python-2021.12.1559732655\pythonFiles\lib\python\debugpy\launcher'
'55275' '--' 'c:\Users\Admin\Downloads\Opencv\Faces\face.py'
> Training done ---------------
PS C:\Users\Admin\Downloads\Opencv\Faces> c:; cd 'c:\Users\Admin\Downloads\Opencv\Faces'; & 'C:\Program
Files\Python310\pyth0' '--'
'c:\Users\Admin\Downloads\Opencv\Faces\face_recognization1.py'
> Label = Elton John with a confidence of 0.0
> Label = Elton John with a confidence of 0.0
on.exe'
'c:\Users\Admin\.vscode\extensions\ms-python.python-2021.12.1559732655\pythonFiles\lib\python\debugpy\launcher'
'55339' '--'
'c:\Users\Admin\Downloads\Opencv\Faces\face_recognization1.py'
> Label = nidhi agarwal with a confidence of 0.0

Why can't I import opencv3 even though the package is installed?

I currently am running Python 3.5 and using Spyder from Anaconda as my IDE. I am running this on a Windows machine.
When I write import cv3 at the top of my code, it returns the error ImportError: No module named 'cv3'
I attempted to install opencv3 again with the command conda install -c https://conda.binstar.org/menpo opencv3 in the Command Prompt. It is apparently already installed because it returned
Fetching package metabase...............
Solving package specifications: .
# All requested packages already installed.
# packages in environment at C:\Users\Joey\Anaconda3:
# opencv3 3.1.0 py35_0 https://conda.binstar.org/menpo
Am I importing cv3 wrong? How do I fix this error?
Update: Tried import cv3 instead of import cv2 but got the following error: ImportError: cannot import name 'cv2'. The wording on the two errors is different, so python must acknowledge there is opencv installed but it does not work for some reason. Any ideas?
Ironically enough, the module is still called cv2 because it doesn't represent the version of opencv but the actual C++ API underneath which is, to be contrasted from the C API, named - cv2... So try with: import cv2
Problem solved by using command pip uninstall opencv-python in the Command Prompt.
I have attempted several installations of opencv and I suppose one may have downloaded badly and Anaconda was attempting to read that one. I looked into the build of some of the other installations I attempted and some were for Python 2.7. Maybe that contributed to the error.
Thankfully, this worked. Now import cv2 works perfectly. No errors.
I used the same approach to install the package. However, I could not import the library using the name opencv3. I had to use cv2 which worked for me.
Elaborating on #zwer's answer, check the version of OpenCV after import cv2.
>>> cv2.__version__
'3.1.0'
So basically it's calling the OpenCV3 library.

Categories