/
face_dataset.py
43 lines (37 loc) · 1.29 KB
/
face_dataset.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#importing packages
from imutils.video import VideoStream
import argparse
import imutils
import time
import cv2
import os
#command line arguments
ap=argparse.ArgumentParser()
ap.add_argument('-c','--cascade',required=True,help=r"C:\Users\Dell\Documents\SmartAttendanceTracker\haarcascade_frontalface_default.xml")
ap.add_argument('-o','--output',required=True,help=r"C:\Users\Dell\Documents\SmartAttendanceTracker\Dataset")
args=vars(ap.parse_args())
#building
detector=cv2.CascadeClassifier(args["cascade"])
print('[INFO] starting video stream..')
vs=VideoStream(src=0).start()
time.sleep(2.0)
total=0
while True:
frame=vs.read()
orig=frame.copy()
frame=imutils.resize(frame,width=400)
rects=detector.detectMultiScale(cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY),scaleFactor=1.1,minNeighbors=5,minSize=(30,30))
for(x,y,w,h) in rects:
cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2)
cv2.imshow('Frame',frame)
key=cv2.waitKey(1) & 0xFF
if key == ord("k"):
p=os.path.sep.join([args['output'],'{}.png'.format(str(total).zfill(5))])
cv2.imwrite(p,orig)
total +=1
elif key == ord('q'):
break
print("[INFO] {} face images stored".format(total) )
print('[INFO] cleaning up...')
cv2.destroyAllWindows()
vs.stop()