import
cv2
import
numpy as np
import
time
print
(cv2.__version__)
capture_video
=
cv2.VideoCapture(
"video.mp4"
)
time.sleep(
1
)
count
=
0
background
=
0
for
i
in
range
(
60
):
return_val, background
=
capture_video.read()
if
return_val
=
=
False
:
continue
background
=
np.flip(background, axis
=
1
)
while
(capture_video.isOpened()):
return_val, img
=
capture_video.read()
if
not
return_val :
break
count
=
count
+
1
img
=
np.flip(img, axis
=
1
)
hsv
=
cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
lower_red
=
np.array([
100
,
40
,
40
])
upper_red
=
np.array([
100
,
255
,
255
])
mask1
=
cv2.inRange(hsv, lower_red, upper_red)
lower_red
=
np.array([
155
,
40
,
40
])
upper_red
=
np.array([
180
,
255
,
255
])
mask2
=
cv2.inRange(hsv, lower_red, upper_red)
mask1
=
mask1
+
mask2
mask1
=
cv2.morphologyEx(mask1, cv2.MORPH_OPEN, np.ones((
3
,
3
),
np.uint8), iterations
=
2
)
mask1
=
cv2.dilate(mask1, np.ones((
3
,
3
), np.uint8), iterations
=
1
)
mask2
=
cv2.bitwise_not(mask1)
res1
=
cv2.bitwise_and(background, background, mask
=
mask1)
res2
=
cv2.bitwise_and(img, img, mask
=
mask2)
final_output
=
cv2.addWeighted(res1,
1
, res2,
1
,
0
)
cv2.imshow(
"INVISIBLE MAN"
, final_output)
k
=
cv2.waitKey(
10
)
if
k
=
=
27
:
break