运行OpenCV LBPH人脸识别代码报错如何排查解决
常见触发原因
运行这段代码报属性错误属于高频问题,大量开发者都碰到过同类情况,触发原因基本就两类:
- 安装的是无拓展的基础版OpenCV包:
cv2.face.LBPHFaceRecognizer属于opencv_contrib拓展模块里的功能,默认的opencv-python包不包含这个子模块,直接调用就会报找不到属性的错误 - 本地OpenCV包版本冲突:如果同时装了
opencv-python和opencv-contrib-python但两个包版本号不一致,也会导致模块加载异常,识别不到face子模块下的方法
修复方法
- 先清理本地冲突的OpenCV相关包,终端执行以下命令:
pip uninstall opencv-python opencv-contrib-python -y
- 重新安装完整的带contrib拓展的OpenCV包,执行:
pip install opencv-contrib-python
- 额外排查点:你代码里直接写了
cascadePath = "haarcascade_frontalface_default.xml",后续运行大概率会因为找不到这个分类器文件报错,最好替换成该文件在你本地的绝对路径——这个文件默认存放在你安装的opencv-contrib-python包的data/haarcascades目录下,直接在本地Python安装目录搜文件名就能找到全路径。
内容的提问来源于stack exchange,提问作者RmUTUUU
相关产品推荐
相关产品推荐

