diff --git a/general/Invisible_Cloak/README.md b/general/Invisible_Cloak/README.md new file mode 100644 index 00000000..7e52e29f --- /dev/null +++ b/general/Invisible_Cloak/README.md @@ -0,0 +1,11 @@ +To run this : + +• pip3 install -r requirements.txt + + After running this programme + +• Your webcam is open on a new window + +• It needs to capture background and save as image (so after running you need to stay beside your webcam so that it will easily capture background for 5 second) + +• After that when you come in front of webcam with red cloth or any red color thing it become transparent in webcam diff --git a/general/Invisible_Cloak/invisible_cloak.py b/general/Invisible_Cloak/invisible_cloak.py new file mode 100644 index 00000000..01ee6bc9 --- /dev/null +++ b/general/Invisible_Cloak/invisible_cloak.py @@ -0,0 +1,63 @@ +#import libraries +import numpy as np +import cv2 + +import time + +cap = cv2.VideoCapture(0) + +#time to adjust camera +time.sleep(5) + +#background image display when cloak on myself +background = 0 + +#capturing the background +for i in range(50): + + ret, background = cap.read() + +#code is running until webcam is not off +while(cap.isOpened()): + + ret, img = cap.read() + + if not ret: + break + + hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) + + #HSV values + lower_red = np.array([0,50,50]) + upper_red = np.array([10,255,255]) + + #seprating the cloak part + mask1 = cv2.inRange(hsv, lower_red, upper_red) + + lower_red = np.array([170, 70, 50]) + upper_red = np.array([180, 255, 255]) + mask2 = cv2.inRange(hsv, lower_red, upper_red) + + #OR + mask1 = mask1 + mask2 + + mask1 = cv2.morphologyEx(mask1, cv2.MORPH_OPEN, + np.ones((3,3), np.uint8), iterations=10) #noise removal + mask1 = cv2.morphologyEx(mask1, cv2.MORPH_DILATE, + np.ones((3,3), np.uint8), iterations=10) + + mask2 = cv2.bitwise_not(mask1)#except the cloak + + res1 = cv2.bitwise_and(background, background, mask=mask1)#used for segmentation of color + res2 = cv2.bitwise_and(img, img, mask=mask2)#used to substitute the cloak part + final_output = cv2.addWeighted(res1, 1, res2, 1, 0) + + cv2.imshow('Welcome To Hogwarts!!',final_output) + k= cv2.waitKey(10) + if k == 27: + break + +cap.release() +cv2.destroyAllWindows() + + diff --git a/general/Invisible_Cloak/requirements.txt b/general/Invisible_Cloak/requirements.txt new file mode 100644 index 00000000..cb3738c2 --- /dev/null +++ b/general/Invisible_Cloak/requirements.txt @@ -0,0 +1,2 @@ +numpy +opencv-python