' cv2.CascadeClassifier'对象没有属性' detectMultiscale'

时间:2016-11-25 12:11:18

标签: python

我只想用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

2 个答案:

答案 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')