Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Invisible cloak programme using opencv #32

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions general/Invisible_Cloak/README.md
Original file line number Diff line number Diff line change
@@ -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
63 changes: 63 additions & 0 deletions general/Invisible_Cloak/invisible_cloak.py
Original file line number Diff line number Diff line change
@@ -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()


2 changes: 2 additions & 0 deletions general/Invisible_Cloak/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
numpy
opencv-python