逛了一圈csdn,发现有很多博主都说要从python安装路中调haarcascade_frontalface_default.xml(人脸检测分类器)才能使用,但是我实验发现,其实只需要调用这个文件就可以,无论在什么路径下,只要访问路径正确就可以实现调用。
至于这个报错,其实是由于没有读取到图片导致的,所以是读取图片路径出错。
(我的opencv版本为4.4.5)
import cv2
faceCascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
img = cv2.imread("D:/resource_photo/face.png")
imgGray = cv2.cvtColor(img, cv2.COLOR_BGRA2GRAY)
faces = faceCascade.detectMultiScale(imgGray, 1.1,4)
for (x,y,w,h) in faces:
cv2.rectangle(img, (x,y),(x+w,y+h),(255,0,0),2)
cv2.imshow("result",img)
cv2.waitKey(0)
(此处我将haarcascade_frontalface_default.xml与该代码文件放置在同一目录下)
(1)使用" / "或者" \\ "分隔,而不是" \ "
(2)路径中不能包含中文,可能会出现报错
(3)相对路径中,退出当前目录需要在路径前加上" ../ "或者" ..\\ "