是否可以在不检测脸部的情况下检测眼睛?

时间:2017-11-19 09:37:54

标签: python image-processing haar-classifier

我一直在Haar-cascade学习。我一直在关注教程whicg检测面部,然后检测眼睛。从我在网上发现,大多数情况下会首先检测到脸部然后是眼睛。是不是只能探测到眼睛?

这是我检测脸部和眼睛的代码。

import cv2
import numpy

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_lefteye_2splits.xml')
cap = cv2.VideoCapture(0)
while True:
    ret, img = cap.read()
    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)
        rol_gray = gray[y:y+h,x:x+w]
        rol_color = img[y:y+h,x:x+w]
        eyes = eye_cascade.detectMultiScale(gray,1.5,5)
        if eyes is None:
            print ("Can't find")
        for (ex,ey,ew,eh) in eyes:
            cv2.rectangle(img,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
            cv2.imwrite('FaceFileName.jpg', img)
cv2.imshow('img',img)
k = cv2.waitKey(30) % 0xFF
if k == 27:
    break;
cap.release()
cv2.destroyAllWindows()

正如你所看到的,我首先使用级联来检测脸部,然后是眼睛。我也试过去除脸部级联,只留下眼睛级联。结果是眼睛无法找到。 haar-cascade只能检测眼睛吗?是否有必要首先检测面部然后是眼睛?

0 个答案:

没有答案