Python 笑脸抓拍

'''
Python 人脸微笑抓拍 by 郑瑞国
SmileFaceSnapping.py
Press space key continu,Press Q key Quit.
'''
import cv2

faceCascad = cv2.CascadeClassifier("C:/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml")
smileCascade = cv2.CascadeClassifier("C:/opencv/sources/data/haarcascades/haarcascade_smile.xml")

cap=cv2.VideoCapture(0)
#frame=cv2.imread("eye2.jpg")
while(1):
    ret,frame=cap.read()

    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    faces = faceCascad.detectMultiScale(
        gray,
        scaleFactor= 1.1,
        minNeighbors=8,
        minSize=(55, 55),
        flags=cv2.CASCADE_SCALE_IMAGE
    )
    for (x,y,w,h) in faces:
        cv2.rectangle(frame,(x,y),(x+w,y+h),(0,0,255),2)
        #cv2.putText(frame,'Face',(x,y-7), 3, 1.2, (0, 255, 0), 2, cv2.LINE_AA)
        roi_gray = gray[y:y+h, x:x+w]
        roi_color = frame[y:y+h, x:x+w]
        
        smile = smileCascade.detectMultiScale(
            roi_gray,
            scaleFactor= 1.86,
            minNeighbors=38,
            minSize=(25, 25),
            flags=cv2.CASCADE_SCALE_IMAGE
        )
        for (x2,y2,w2,h2) in smile:
            cv2.rectangle(roi_color, (x2, y2), (x2+w2, y2+h2), (255, 0, 0), 2)
            cv2.putText(frame,'Smile',(x,y-7), 3, 1.2, (0, 255, 0), 2, cv2.LINE_AA)
            

            cv2.imshow('Smile',frame)
            cv2.waitKey(0)
            cv2.imwrite('c:/python37/AICode/face'+str(x)+str(y)+str(w)+str(h)+'.jpg',frame)
    if cv2.waitKey(1)&0xFF==ord('q')or ret==False:
        break    
    cv2.imshow('Smile',frame)
    cv2.waitKey(1)
cap.release()
cv2.destroyAllWindows()

猜你喜欢

转载自blog.csdn.net/zheng_ruiguo/article/details/88536363