【发布时间】:2019-11-18 05:31:07
【问题描述】:
我正在尝试进行人脸检测,但它没有检测到任何人脸。
这是我为人脸检测创建的函数
def faceDetection(test_img):
gray_img=cv2.cvtColor(test_img,cv2.COLOR_BGR2GRAY)
face_haar_cascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# haar classifier
faces=face_haar_cascade.detectMultiScale(gray_img,scaleFactor=1.32,minNeighbors=5)
return faces,gray_img
这用于
test_img=cv2.imread('pic.png')
faces_detected,gray_img=fr.faceDetection(test_img)
print("faces_detected:",faces_detected)
for (x,y,w,h) in faces_detected:
cv2.rectangle(test_img,(x,y),(x+w,y+h),(255,0,0),thickness=5)
resized_img=cv2.resize(test_img,(500,500))
cv2.imshow("face",resized_img)
cv2.waitKey(0)
cv2.destroyAllWindows
但是当我运行这个脚本时,它没有显示检测到任何人脸 简单地输出这个
faces_detected: ()
图像周围没有框
【问题讨论】:
-
您确定您已将haarcascade_frontalface_default.xml 下载到正确的目的地吗?
-
是的,来自 OpenCV 的 github 页面
-
尝试降低scaleFactor,它相当高。尝试默认值 1.1
-
不,它不起作用,它通过减少scaleFactor来检测但不是人脸
标签: python python-3.x opencv face-recognition