Python2.7+OpenCV3调用cv2.createLBPHFaceRecognizer()报错求助
解决AttributeError: 'module' object has no attribute 'createLBPHFaceRecognizer'的问题
我之前在Python2.7+OpenCV3的环境下也碰到过一模一样的问题,给你几个针对性的解决步骤:
修正代码调用路径
OpenCV 3.x重构了模块结构,把人脸识别这类扩展功能从主cv2模块移到了cv2.face子模块里。你需要把代码改成这样:import cv2 recognizer = cv2.face.createLBPHFaceRecognizer()这是最常见的出错原因——没跟上OpenCV版本的模块迁移变化。
安装兼容版本的opencv-contrib-python
你已经执行了pip install opencv-contrib-python,但要注意:Python2.7只支持OpenCV 3.x系列的contrib包,4.x及以上版本的opencv-contrib-python已经彻底放弃了Python2.7支持。所以得指定安装兼容的3.x版本,比如:pip install opencv-contrib-python==3.4.13.47另外要确保
opencv-python和opencv-contrib-python的版本完全一致,版本不匹配也会导致模块加载异常。验证安装是否生效
打开Python2.7的交互终端,执行以下命令确认:import cv2 # 确认OpenCV版本是3.x print(cv2.__version__) # 查看cv2.face模块下的方法,确认存在createLBPHFaceRecognizer print(dir(cv2.face))如果输出结果里能看到
createLBPHFaceRecognizer,说明模块已经正确加载了。
内容的提问来源于stack exchange,提问作者Nigusu Solomon
相关产品推荐
相关产品推荐

