m0_75239778 2023-02-08 10:19 采纳率: 100%
浏览 59
已结题

OpenCV的detectMultiScale报错,如何解决?(语言-python)

我的detectMultiScale报错,不知道是哪里的问题
这是代码


import cv2 as cv
def face_detect_demo(img):
    #将图片灰度
    gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
    #加载特征数据
    face_detector = cv.CascadeClassifier('D:\\下载的软件\\OpenCV\\opencv-4.6.0-vc14_vc15\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_default.xml')
    faces = face_detector.detectMultiScale(gray)
    for x,y,w,h in faces:
        print(x,y,w,h)
        cv.rectangle(img,(x,y),(x+w,y+h),color=(0,0,255),thickness=2)
        cv.circle(img,center=(x+w//2,y+h//2),radius=w//2,color=(0,255,0),thickness=2)
    #显示图片
    cv.imshow('result',img)

#加载图片
img=cv.imread('face.jpg')
#调用人脸检测方法
face_detect_demo(img)
cv.waitKey(0)
cv.destroyAllWindows()

这个是显示的错误


OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'
  File "D:\新建文件夹\opencv人脸识别\6多个人脸识别.py", line 7, in face_detect_demo
    faces = face_detector.detectMultiScale(gray)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\新建文件夹\opencv人脸识别\6多个人脸识别.py", line 18, in <module>
    face_detect_demo(img)
cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'

  • 写回答

3条回答 默认 最新

  • 爱晚乏客游 2023-02-08 10:39
    关注

    根据你的报错信息,我可以明确的告诉你就是由于opencv不支持中文路径的读写

    img


    你这face的路径这么写的话,绝对路径里面就是有中文,图片读取失败了导致后面的问题。

    另外,学编程的第一步就是不要用中文路径,英语差,你路径就算是用拼音都行(代码中不建议拼音,用拼音坑多),不然就会像现在这样,出现问题你都不知道为啥,这还是python3优化了很多的情况下,要是早期python2的时代,问题更多

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月16日
  • 已采纳回答 2月8日
  • 创建了问题 2月8日

悬赏问题

  • ¥15 memory.limit()' is no longer supported
  • ¥15 基于stm32f4产生两路pwm信号并可由串口通信调节
  • ¥15 C++/QT设置函数调用条件(多个功能调用同一,且各自调用条件不同)
  • ¥15 UE5样条线生成的网格UV问题
  • ¥15 如何用最短的时间大致看懂springboot+vue的项目
  • ¥15 (有偿)懂数值分析和含时变参数微分方程的来
  • ¥15 abaqus随机生成二维颗粒
  • ¥15 安装ansys许可证管理器时出现了这个问题,如何解决?
  • ¥100 高价求算法,利用智能手机传感器计算车辆的三轴g值
  • ¥15 uni-app开发APP运行到浏览器访问接口跨域