You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行OpenCV人脸检测代码时遇AttributeError: cv2无cv.CV_HAAR_DO_CANNY_PRUNING属性

问题解决:OpenCV人脸检测AttributeError

错误原因

这段代码基于OpenCV 2.x编写,但你安装的是OpenCV 3.x及更高版本。新版本重构了API:

  • 移除了cv2.cv子模块
  • HAAR级联相关常量前缀从CV_HAAR_改为CASCADE_,且直接归属cv2主模块

修复步骤

  1. 替换常量命名:把代码中所有cv2.cv.CV_HAAR_*替换为cv2.CASCADE_*
  2. 修正人脸检测结果判断:新版本detectMultiScale返回numpy数组,空数组不等于(),需用len(fface) > 0判断

修改后的代码

if not faceFound:
    if lastface == 0 or lastface == 1:
        # 连续读取5帧解决摄像头延迟问题
        for _ in range(5):
            aframe = webcam.read()[1]
        # 使用新版本OpenCV的常量
        fface = frontalface.detectMultiScale(
            aframe,
            scaleFactor=1.3,
            minNeighbors=4,
            flags=cv2.CASCADE_DO_CANNY_PRUNING + cv2.CASCADE_FIND_BIGGEST_OBJECT + cv2.CASCADE_DO_ROUGH_SEARCH,
            minSize=(60, 60)
        )
        if len(fface) > 0:         
            lastface = 1        
            for f in fface:     
                faceFound = True
                face = f

备选方案(不推荐)

如果必须兼容旧代码,可以安装OpenCV 2.x版本:

pip install opencv-python==2.4.13.7

内容的提问来源于stack exchange,提问作者vienda 34

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 12:07:27