尝试使用opencv harcascade文件查找人脸检测,但x,y,w,h值为空[关闭]

Posted

技术标签:

【中文标题】尝试使用opencv harcascade文件查找人脸检测,但x,y,w,h值为空[关闭]【英文标题】:Try to find face detection using opencv harcascade file but the x,y,w,h values are empty [closed] 【发布时间】:2021-09-26 20:48:03 【问题描述】:

尝试使用opencv harcascade文件查找人脸检测,但x、y、w、h值为空

import cv2            ***import packages***
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')    **import 
                                                                                 haarcascade**
image=cv2.imread("messi.jpg")     **read image**
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)   **convert gray image**
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
        
        cv2.rectangle(image,(x,y),(x+w,y+h),(255,255,0),2)
        
cv2.imshow("crop/region of interset image",image) 
cv2.waitKey(0)
cv2.destroyAllWindows()

【问题讨论】:

【参考方案1】:

这通常不应该发生。我还用python和opencv做了一个人脸识别haar级联分类器。您确定训练数据中没有错误吗?例如,阶段被删除或阶段 10 存在并且阶段 12 存在但阶段 11 不存在。我认为这是发生这种情况的唯一方法。如果这是问题所在,请删除您的训练数据并重新训练。我的猜测是你只是重新训练你的模型。记住:在再次开始训练模型之前,删除所有内容,包括阶段、模型训练数据。

【讨论】:

【参考方案2】:

是不是在图片中根本没有检测到人脸(因此,循环甚至没有运行)? 我建议先打印人脸的长度,以验证这一点。

【讨论】:

当我打印值 x,y,w,h 时它没有值但是当改变检测 MultiScale [1.3 到 1.1,5 到 4] 的值时它打印值

以上是关于尝试使用opencv harcascade文件查找人脸检测,但x,y,w,h值为空[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用 OpenCV C++ 查找已知对象

尝试查找棋盘角时出现opencv python错误

如何使用opencv查找手动定义的地标的描述符

如何查找opencv4tegra 的安装路径

使用 OpenCV 查找图像中两点之间的角度

OpenCV 查找图像的紧密匹配