You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

已安装opencv-contrib模块仍无法执行cv2.face.LBPHFaceRecognizer_create()命令的技术求助

解决AttributeError: module 'cv2.cv2' has no attribute 'face'的问题

别着急,这个问题我碰到过好几次,大多是版本不兼容或者环境没对应上导致的,给你几个靠谱的排查和解决步骤:

  • 第一步:确认OpenCV和contrib版本完全匹配
    这是最常见的原因!如果你装的opencv-pythonopencv-contrib-python版本不一致,就会出现模块找不到的情况。你可以先在终端里运行命令查看当前安装的版本:

    • Windows:pip list | findstr opencv
    • Linux/macOS:pip list | grep opencv
      如果两个包的版本号不一样,先把它们都卸载:
    pip uninstall opencv-python opencv-contrib-python -y
    

    然后重新安装同一版本的包,比如选一个稳定的版本(比如4.5.5.62):

    pip install opencv-python==4.5.5.62 opencv-contrib-python==4.5.5.62
    

    要是想装最新兼容版本,直接运行:

    pip install opencv-python opencv-contrib-python
    
  • 第二步:检查代码运行环境是否和安装环境一致
    很多人用虚拟环境的时候容易踩这个坑——包装在了全局环境,但代码却在虚拟环境里跑,反过来也一样。你可以在代码里加两行先确认:

    import cv2
    print(cv2.__file__)
    

    运行后会输出cv2模块的安装路径,你再对比终端里pip show opencv-python输出的Location路径,要是不一样,就切换到正确的环境重新安装包。

  • 第三步:避免混合使用conda和pip安装OpenCV
    如果你是用conda管理环境的,别用pip装contrib包,不然很容易冲突。先卸载用pip装的包,然后用conda安装:

    pip uninstall opencv-python opencv-contrib-python -y
    conda install -c conda-forge opencv-contrib-python
    
  • 第四步:尝试直接导入face模块
    有时候直接调用cv2.face会有导入延迟的问题,你可以试试先单独导入face模块再使用:

    from cv2 import face
    recognizer = face.LBPHFaceRecognizer_create()
    
  • 第五步:清理缓存重新安装
    如果之前安装过程中出了差错,缓存可能会导致安装不完整。卸载后加上--no-cache-dir参数重装:

    pip uninstall opencv-python opencv-contrib-python -y
    pip install --no-cache-dir opencv-python opencv-contrib-python
    

按照这些步骤一步步排查,应该就能解决问题了!

内容的提问来源于stack exchange,提问作者Shravan Khar

火山引擎 最新活动