2016-11-25 732 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'的規模是大寫。