-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathinvisible_Cloak.py
57 lines (41 loc) · 1.64 KB
/
invisible_Cloak.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
# Import Libraries
import numpy as np
import cv2
import time
# camCount=0
#To use webcam enter 0 and to enter the video path in dowble quotes
cap = cv2.VideoCapture(0)
time.sleep(3) # parantheis haas two because the camera needs time to adjust it self i according to the environment(ANDHERA KAMRA)
background = 0
# Capturing the background
for i in range(60):
ret, background = cap.read()
#capturing image
background = np.flip(background,axis=1)
while(cap.isOpened()): #Condition for this is when only the web cam is opened it will only run the code else the code will not run in the background without the webbcam
ret, img = cap.read()
if not ret:
break
img = np.flip(img,axis=1)
hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
#HSV values
#setting the values for the cloak
lower_red = np.array([0,120,70])
upper_red = np.array([10,255,255])
mask1 = cv2.inRange(hsv, lower_red,upper_red)
lower_red = np.array([170,120,70])
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.morphologyEx(mask1, cv2.MORPH_DILATE,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 Cloak',final_output)
k = cv2.waitKey(10)
if k==27:
break
cap.release()
cv2.destroyAllWindows()