I am creating a face recognition system using Python and OpenCV on these versions:
- Python 3.6.2 :: Anaconda custom (64-bit)
- Anaconda 4.3.23
- OpenCV 3.3.0
When I try to train the face recognizer:
face_recognizer = cv2.face.createLBPHFaceRecognizer()
I get this error:
AttributeError: module 'cv2' has no attribute 'face'
Update:
I've tried to do this:
pip install opencv_python‑3.3.0+contrib‑cp36‑cp36m‑win_amd64.whl
Also:
conda install -c menpo opencv3=3.3.0
And I still have the error.
The Menpo project does not have an installer for OpenCV 3.3. The Menpo project is up to 3.1 on macOS and Windows, and 3.2 on Linux. See the Anaconda package for that description and also the list of files for the installer versions. Actually, you can check out the GitHub repo for Menpo's OpenCV3 build and grab the files yourself. You can change the build files to suit your system if needed.
I'm not sure if your pip
attempt includes a typo or not---the correct PyPI package wheel
file with the contrib module is opencv_contrib_python
not opencv_python+contrib
, as shown at PyPI. Note that if you're not using Windows the GUI features of OpenCV will not work with the pip
installer, including imshow()
and other similar features.
You'd be better served just removing and reinstalling fresh with the contrib modules instead of trying to build them in later.
I found the solution to my issue, you have to follow this tutorial OpenCV with extra modules.
The essential steps are:
- Go to C:/PythonXX/lib/site-packeges (the site-packages folder where your python is installed), and delete cv2.pyd if present.
- Download OpenCV with extra modules
- Create a Visual Studio project with CMake
- Open Python IDLE and enter import cv2. If there is no error, then the installation is successful.
my using python 2.7 and opencv 3.3.0 working in code
cv2.face.LBPHFaceRecognizer_create();
While I was looking for the same solution, I tried out many methods which don't work well with successfully installing OpenCV along with the extra modules i.e., OpenCV Contrib.
Apparently, while using pip install opencv-python
windows platforms usually download only OpenCV without the extra modules!
What works, is stable and easy to install:
- Download the integrated 'whl' file containing both OpenCV and it's Contrib files, which would be like 'opencv_python‑3.4.3+contrib‑cp36‑cp36m‑win_amd64.whl' which can be downloaded from here.
- Install using
pip install <whl filename>
I have tried other methods which are unreliable such as the solution suggested by @RoyaumeIX, however ended up with failure.
So is it with using
pip install opencv
pip install opencv-contrib
Installing opencv-contrib
does not properly register the opencv
package.
I strongly suggest that you directly download the official whl file and install it.
Solution, as were found at OpenCV forum (and same at StackOverflow), works well for me:
pip install opencv-python
pip install opencv_contrib_python
And in cv2 version 4.0.0 face recogniser can be created by using different function name, as mentionted above:
face_recognizer = cv2.face.LBPHFaceRecognizer_create()
face_recognizer = cv2.face.EigenFaceRecognizer_create()
face_recognizer = cv2.face.FisherFaceRecognizer_create()
来源:https://stackoverflow.com/questions/46288224/opencv-attributeerror-module-cv2-has-no-attribute-face