-
Notifications
You must be signed in to change notification settings - Fork 0
/
eye_datasets.py
67 lines (47 loc) · 1.7 KB
/
eye_datasets.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
# Import OpenCV2 for image processing
import cv2
#%%
vid_cam = cv2.VideoCapture(0)
# Haarcascade Frontal Face ile yüz tanıma
face_detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# Haarcascade eye ile göz tanıma
eye = cv2.CascadeClassifier('haarcascade_eye.xml')
# tanımlanan her sınıf için id belirleme
class_id = 2
# Initialize sample face image
count = 0
# Start looping
while(True):
# video frame
_,image_frame = vid_cam.read()
image_frame=cv2.flip(image_frame,1)
# frame i grayscale e cevir
gray = cv2.cvtColor(image_frame, cv2.COLOR_BGR2GRAY)
#yüzleri bul
faces = face_detector.detectMultiScale(gray, 1.3, 5)
# Loops for each faces
for (x,y,w,h) in faces:
# Crop the image frame into rectangle
cv2.rectangle(image_frame, (x,y), (x+w,y+h), (255,0,0), 2)
roi_gray=gray[y:y+h,x:x+w]
roi_color=image_frame[y:y+h,x:x+w]
eyes=eye.detectMultiScale(roi_gray)
i=0
for(ex,ey,ew,eh) in eyes:
i=i+1
cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,0,255),2)
if(i==2): count +=1
# image sayısını bir arttır
#çekilen fotografları dataset sınıfına yazma
cv2.imwrite("dataset/User." + str(class_id) + '.' + str(count) + ".jpg", roi_gray[ey:ey+eh,ex:ex+ew])
#dikdortgen icine alınan yüzü göster
cv2.imshow('frame', image_frame)
# 'q' ya bas durdur
if cv2.waitKey(100) & 0xFF == ord('q'):
break
# eger cekilen fotograf sayısı 100 'e ulaştıysa durdur.
elif count>100:
break
# Stop video
vid_cam.release()
cv2.destroyAllWindows()