2016-11-25 441 views
0

我只是想用haarcascade检测脸部和眼睛。但这是我收到的错误。'cv2.CascadeClassifier'对象没有属性'detectMultiscale'

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 
+2

使用'detectMultiScale',大写'S',而不是'detectMultiscale'。 – roganjosh

回答

0

就像在有关问题的评论中提到@roganjosh上找到的代码,这里的问题是,该方法的名称拼写不正确出来。正确的函数调用是:

face_cascade.detectMultiScale(...) 

不同的是,'S'的规模是大写。