Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
Smart E- Learn Tracer
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
23_22 - J 01
Smart E- Learn Tracer
Commits
33412dd1
Commit
33412dd1
authored
Jan 31, 2023
by
Jebarsan dias
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
attendence python
parent
f19cdf94
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
81 additions
and
0 deletions
+81
-0
attendance /attendence.py
attendance /attendence.py
+81
-0
No files found.
attendance /attendence.py
0 → 100644
View file @
33412dd1
import
cv2
import
numpy
as
np
import
face_recognition
import
os
from
datetime
import
datetime
# from PIL import ImageGrab
path
=
'C:/Users/jebar/Desktop/attendanemark/attendanemark/studensimages'
images
=
[]
classNames
=
[]
myList
=
os
.
listdir
(
path
)
print
(
myList
)
for
cl
in
myList
:
curImg
=
cv2
.
imread
(
f
'{path}/{cl}'
)
images
.
append
(
curImg
)
classNames
.
append
(
os
.
path
.
splitext
(
cl
)[
0
])
print
(
classNames
)
def
findEncodings
(
images
):
encodeList
=
[]
for
img
in
images
:
img
=
cv2
.
cvtColor
(
img
,
cv2
.
COLOR_BGR2RGB
)
encode
=
face_recognition
.
face_encodings
(
img
)[
0
]
encodeList
.
append
(
encode
)
return
encodeList
def
markAttendance
(
name
):
with
open
(
'Att.csv'
,
'r+'
)
as
f
:
myDataList
=
f
.
readlines
()
nameList
=
[]
for
line
in
myDataList
:
entry
=
line
.
split
(
','
)
nameList
.
append
(
entry
[
0
])
if
name
not
in
nameList
:
now
=
datetime
.
now
()
dtString
=
now
.
strftime
(
'
%
H:
%
M:
%
S'
)
f
.
writelines
(
f
'
\n
{name},{dtString}'
)
#### FOR CAPTURING SCREEN RATHER THAN WEBCAM
# def captureScreen(bbox=(300,300,690+300,530+300)):
# capScr = np.array(ImageGrab.grab(bbox))
# capScr = cv2.cvtColor(capScr, cv2.COLOR_RGB2BGR)
# return capScr
encodeListKnown
=
findEncodings
(
images
)
print
(
'Encoding Complete- Press Q or q to CLOSE WEBCAM'
)
cap
=
cv2
.
VideoCapture
(
0
)
while
True
:
success
,
img
=
cap
.
read
()
# img = captureScreen()
imgS
=
cv2
.
resize
(
img
,(
0
,
0
),
None
,
0.25
,
0.25
)
imgS
=
cv2
.
cvtColor
(
imgS
,
cv2
.
COLOR_BGR2RGB
)
facesCurFrame
=
face_recognition
.
face_locations
(
imgS
)
encodesCurFrame
=
face_recognition
.
face_encodings
(
imgS
,
facesCurFrame
)
for
encodeFace
,
faceLoc
in
zip
(
encodesCurFrame
,
facesCurFrame
):
matches
=
face_recognition
.
compare_faces
(
encodeListKnown
,
encodeFace
)
faceDis
=
face_recognition
.
face_distance
(
encodeListKnown
,
encodeFace
)
#print(faceDis)
matchIndex
=
np
.
argmin
(
faceDis
)
if
matches
[
matchIndex
]:
name
=
classNames
[
matchIndex
]
.
upper
()
print
(
name
)
y1
,
x2
,
y2
,
x1
=
faceLoc
y1
,
x2
,
y2
,
x1
=
y1
*
4
,
x2
*
4
,
y2
*
4
,
x1
*
4
cv2
.
rectangle
(
img
,(
x1
,
y1
),(
x2
,
y2
),(
0
,
255
,
0
),
2
)
cv2
.
rectangle
(
img
,(
x1
,
y2
-
35
),(
x2
,
y2
),(
0
,
255
,
0
),
cv2
.
FILLED
)
cv2
.
putText
(
img
,
name
,(
x1
+
6
,
y2
-
6
),
cv2
.
FONT_HERSHEY_COMPLEX
,
1
,(
255
,
255
,
255
),
2
)
markAttendance
(
name
)
cv2
.
imshow
(
'Webcam'
,
img
)
b
=
cv2
.
waitKey
(
1
)
if
b
==
31
or
b
==
113
:
print
(
"End Face Detection"
)
break
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment