我只想用haarcascade检测脸部和眼睛。但这是我收到的错误。
Traceback (most recent call last): File "L:/Project/1", line 10, in <module>
faces=face_cascade.detectMultiscale(gray,1.3,5) AttributeError: 'cv2.CascadeClassifier' object has no attribute
'detectMultiscale'
这是我在互联网上找到的代码
import numpy as np
import cv2
face_cascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade=cv2.CascadeClassifier('haarcascade_eye.xml')
img=cv2.imread('download.jpg')
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
faces=face_cascade.detectMultiscale(gray,1.3,5)
for(x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
roi_gray=gray[y:y+h,x:x+w]
roi_color=img[y:y+h,x:x+w]
eyes=eye_cascade.detectMultiScale(roi_gray)
for(ex,ey,ew,eh) in eyes:
cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows
答案 0 :(得分:1)
正如@roganjosh在问题的评论中提到的,这里的问题是方法名称没有正确拼写。正确的函数调用是:
face_cascade.detectMultiScale(...)
区别在于&#39; S&#39;规模资本化。
答案 1 :(得分:1)
类似的代码为我工作,并提供了两个XML文件的绝对路径。示例如下。
1。从 [https://github.com/opencv/opencv/tree/master/data/haarcascades]
下载XML文件2。提及XML文件的绝对路径(下面的示例)
face_cascade = cv2.CascadeClassifier('C:\Python\haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('C:\Python\haarcascade_eye.xml')