-
Notifications
You must be signed in to change notification settings - Fork 3
/
takePhoto.py
71 lines (61 loc) · 2.34 KB
/
takePhoto.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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import cv2
import os
import pickle
import face_recognition
# get the user name from the user input
def register():
try:
email_wechat_dict = pickle.load(open("records/email.txt", "rb"))
except EOFError:
email_wechat_dict = {}
try:
userNamesRecognized = pickle.load(open("records/userNamesRecognized.txt", "rb"))
except EOFError:
userNamesRecognized = {}
userName = input("Enter a user name: ")
print(email_wechat_dict.keys())
if userName not in list(email_wechat_dict.keys()):
email_wechat_dict[userName]=['','','','']
email_wechat_dict[userName][0] = input("Enter the gmail account of the user: ")
email_wechat_dict[userName][1] = input("Enter the password of the user: ")
email_wechat_dict[userName][2] = input("Enter the emergency contact email: ")
email_wechat_dict[userName][3] = input("Enter the emergency contact wechat friend name: ")
cam = cv2.VideoCapture(0)
cv2.namedWindow("test")
img_counter = 0
while True:
ret, frame = cam.read()
cv2.imshow("test", frame)
if not ret:
break
k = cv2.waitKey(1)
if k%256 == 27:
# ESC pressed
print("Escape hit, closing...")
break
elif k%256 == 32:
# SPACE pressed
img_name = userName + ".jpg"
cv2.imwrite(img_name, frame)
print("{} written!".format(img_name))
img_counter += 1
elif k%256 == 127:
# delete pressed
try:
os.remove(userName + ".jpg")
except:
pass
if k == ord('q'):
break
cam.release()
cv2.destroyAllWindows()
user_image = face_recognition.load_image_file(userName + ".jpg")
user_face_encoding = face_recognition.face_encodings(user_image)[0]
userNamesRecognized[userName] = user_face_encoding
print(email_wechat_dict.keys())
pickle.dump(email_wechat_dict, open("records/email.txt", "wb"))
pickle.dump(userNamesRecognized, open("records/userNamesRecognized.txt", "wb"))
print('Registration Successful!')
return True
else:
return False # if user already exists