Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Vikrant Rajan
python-projects
Commits
b1d598b1
Commit
b1d598b1
authored
Dec 27, 2019
by
Vikrant Rajan
Browse files
bokeh detection
parent
80507481
Changes
1
Hide whitespace changes
Inline
Side-by-side
Face Detection/Motion Detection App/capture.1.py
deleted
100644 → 0
View file @
80507481
"""
MOTION DETECTION APPLICATION
"""
import
cv2
,
time
,
pandas
from
datetime
import
datetime
first_frame
=
None
status_list
=
[
None
,
None
]
times
=
[]
df
=
pandas
.
DataFrame
(
columns
=
[
"Start"
,
"End"
])
video
=
cv2
.
VideoCapture
(
0
)
while
True
:
check
,
frame
=
video
.
read
()
status
=
0
gray
=
cv2
.
cvtColor
(
frame
,
cv2
.
COLOR_BGR2GRAY
)
gray
=
cv2
.
GaussianBlur
(
gray
,
(
21
,
21
),
0
)
if
first_frame
is
None
:
first_frame
=
gray
continue
delta_frame
=
cv2
.
absdiff
(
first_frame
,
gray
)
thresh_frame
=
cv2
.
threshold
(
delta_frame
,
30
,
255
,
cv2
.
THRESH_BINARY
)[
1
]
thresh_frame
=
cv2
.
dilate
(
thresh_frame
,
None
,
iterations
=
2
)
(
cnts
,
__
)
=
cv2
.
findContours
(
thresh_frame
.
copy
(),
cv2
.
RETR_EXTERNAL
,
cv2
.
CHAIN_APPROX_SIMPLE
)
for
contour
in
cnts
:
# checking the area of the objects in camera
if
cv2
.
contourArea
(
contour
)
<
10000
:
continue
status
=
1
(
x
,
y
,
w
,
h
)
=
cv2
.
boundingRect
(
contour
)
cv2
.
rectangle
(
frame
,
(
x
,
y
),
(
x
+
w
,
y
+
h
),
(
0
,
255
,
0
),
3
)
status_list
.
append
(
status
)
if
status_list
[
-
1
]
==
1
and
status_list
[
-
2
]
==
0
:
times
.
append
(
datetime
.
now
())
if
status_list
[
-
1
]
==
0
and
status_list
[
-
2
]
==
1
:
times
.
append
(
datetime
.
now
())
# cv2.imshow("Gray Frame", gray)
# cv2.imshow("Delta Frame",delta_frame)
# cv2.imshow("Threshold Frame",thresh_frame)
cv2
.
imshow
(
"Color Frame"
,
frame
)
key
=
cv2
.
waitKey
(
1
)
if
key
==
ord
(
'q'
):
if
status
==
1
:
times
.
append
(
datetime
.
now
())
break
print
(
status_list
)
print
(
times
)
for
i
in
range
(
0
,
len
(
times
),
2
):
df
=
df
.
append
({
"Start"
:
times
[
i
],
"End"
:
times
[
i
+
1
]},
ignore_index
=
True
)
df
.
to_csv
(
"Times.csv"
)
video
.
release
()
cv2
.
destroyAllWindows
\ No newline at end of file
Write
Preview
Supports
Markdown
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