我目前正在使用OpenCV进行人脸检测。我通过cascade trainer GUI使用正面和负面图像完成了培训。但是,当我运行代码测试人脸检测时,只有第一张图像有效(仅当.detectMultiScale设置为灰色,1.01,7时),而其他图像无效
import cv2
import numpy as np
face_cascade = cv2.CascadeClassifier('classifier/cascade.xml')
img = cv2.imread('p/pic2.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray,1.01,7)
for (x,y,w,h) in faces:
img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
我所有的正面图像都是灰度的,它们的大小是(600600)。我的负片图像尺寸较大,但不是灰度。有80张正片和160张负片。我确信这是不是影响结果的原因
如果您使用此代码(没有任何更改),则只处理一个图像(pic2.png)。对于多个图像,您需要在特定文件夹的图像路径中循环
我的建议是在这个{a2}之后再接着{a3}。我以前使用过本教程并训练过许多对象,因此很好地遵循
相关问题 更多 >
编程相关推荐