importcv2importnumpyasnpimporttime# replace the red pixels ( or undesired area ) with# background pixels to generate the invisibility feature.## 1. Hue: This channel encodes color information. Hue can be# thought of an angle where 0 degree corresponds to the red color,# 120 degrees corresponds to the green color, and 240 degrees# corresponds to the blue color.## 2. Saturation: This channel encodes the intensity/purity of color.# For example, pink is less saturated than red.## 3. Value: This channel encodes the brightness of color.# Shading and gloss components of an image appear in this# channel reading the videocapture video# in order to check the cv2 versionprint(cv2.__version__)# taking video.mp4 as input.# Make your path according to your needscapture_video=cv2.VideoCapture("video.mp4")# give the camera to warm uptime.sleep(1)count=0background=0# capturing the background in range of 60# you should have video that have some seconds# dedicated to background frame so that it# could easily save the background imageforiinrange(60):return_val,background=capture_video.read()ifreturn_val==False:continuebackground=np.flip(background,axis=1)# flipping of the frame# we are reading from videowhile(capture_video.isOpened()):return_val,img=capture_video.read()ifnotreturn_val:breakcount=count+1img=np.flip(img,axis=1)# convert the image - BGR to HSV# as we focused on detection of red color# converting BGR to HSV for better# detection or you can convert it to grayhsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)#-------------------------------------BLOCK----------------------------## ranges should be carefully chosen# setting the lower and upper range for mask1lower_red=np.array([100,40,40])upper_red=np.array([100,255,255])mask1=cv2.inRange(hsv,lower_red,upper_red)# setting the lower and upper range for mask2lower_red=np.array([155,40,40])upper_red=np.array([180,255,255])mask2=cv2.inRange(hsv,lower_red,upper_red)#----------------------------------------------------------------------## the above block of code could be replaced with# some other code depending upon the color of your clothmask1=mask1+mask2# Refining the mask corresponding to the detected red colormask1=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)# Generating the final outputres1=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)ifk==27:break