在学习Python OpenCv 人脸识别时其中有一行代码见下:
##加载识别器
recognizer = cv2.face.LBPHFaceRecognizer_create()
问题:
运行后出现问题为:AttributeError: module ‘cv2’ has no attribute ‘face’,出现这样的问题,是因为face模块实际上并不是OpenCv库的一部分。更确切地说,face是部分的的opencv-contrib库。从自述文件:此存储库[ opencv-contrib]用于开发所谓的“额外”模块,提供功能。新模块通常没有稳定的API,并且它们没有经过良好测试。因此,它们不应作为官方OpenCV发行版的一部分发布,因为该库保持二进制兼容性,并试图提供良好的性能和稳定性。
解决方法:
知道问题后,我们就安装对应的库即可,网上有多中方法,比如:
(1)安装opencv-python 和opencv-contrib-python即可解决
(2)卸载opencv-contrib-python之后再重新安装即可解决
我自己采用第一种方法就可以解决,直接使用下面命令安装opencv-contrib库即可:
pip install opencv-contrib-python -i https://mirrors.aliyun.com/pypi/simple/
部分电脑可能使用上面命令后安装失败,问题见下:
ERROR: Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问。: ‘D:\Anaconda\AnacondaPath\envs\p1\Lib\site-packages\cv2\cv2.pyd’
Consider using the --user
option or check the permissions.
如果出现以上问题,用下面方法解决,输入另外一条安装命令即可:
pip install --user opencv-contrib-python -i https://mirrors.aliyun.com/pypi/simple/
安装成功如下图所示:
通过以上步骤安装好opencv-contrib库后,再运行代码就不会报错了,这是我自己成功解决的办法,希望也能帮到各位解决问题,谢谢!