Ask Your Question
0

What is wrong in this Opencv Face Recognition code?

asked 2019-08-14 13:40:20 -0500

updated 2019-08-14 14:59:45 -0500

berak gravatar image

import cv2 import numpy as np .

face_cascade = cv2.CascadeClassifier('Desktop\haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('Desktop\haarcascade_eye.xml')


cap = cv2.VideoCapture(0)

while 1:
    ret, img = cap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectmultiScale(gray, 1.3, 5);  #scalefactor = 1.3, minNeighbors = 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)
    k = cv2.waitKey(30) & 0xff
    if k == 27:
        break
cap.release()
cv2.destroyAllWindows()

This error shows up:

 AttributeError: 'cv2.CascadeClassifier' object has no attribute 'detectmultiScale'
edit retag flag offensive close merge delete

Comments

1

btw, this is face detection, not recognition.

berak gravatar imageberak ( 2019-08-15 02:25:54 -0500 )edit

detection: finding the position of your object (this is a face)

recognition: identity the object (this is Pamela Anderson)

holger gravatar imageholger ( 2019-08-15 03:01:43 -0500 )edit

1 answer

Sort by ยป oldest newest most voted
2

answered 2019-08-14 18:17:08 -0500

ev3670 gravatar image
faces = face_cascade.detectmultiScale(gray, 1.3, 5);

The line above should be:

faces = face_cascade.detectMultiScale(gray, 1.3, 5)

I imagine the capitalization and the semicolon are throwing off your compiler. Especially if this is Python.

edit flag offensive delete link more
Login/Signup to Answer

Question Tools

1 follower

Stats

Asked: 2019-08-14 13:40:20 -0500

Seen: 32 times

Last updated: Aug 14