File size: 934 Bytes
0094cc8
 
8901f41
 
0094cc8
 
f0a577c
0094cc8
 
 
 
 
f0a577c
0094cc8
 
f0a577c
 
 
 
 
 
 
0094cc8
f0a577c
0094cc8
f0a577c
728450f
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
import cv2
import numpy as np
import gradio as gr

def remove_green_screen(video_file, bg_image):
    cap = cv2.VideoCapture(video_file)
    background = cv2.imread(bg_image)
    while True:
        ret, frame = cap.read()
        if not ret:
            break
        hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
        lower_green = np.array([35, 0, 0])
        upper_green = np.array([90, 255, 255])
        mask = cv2.inRange(hsv, lower_green, upper_green)
        mask_inv = cv2.bitwise_not(mask)
        fg = cv2.bitwise_and(frame, frame, mask=mask_inv)
        bg = cv2.bitwise_and(background, background, mask=mask)
        final = cv2.add(fg, bg)
        cv2.imshow("output", final)
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    cap.release()
    cv2.destroyAllWindows()

iface = gr.Interface(fn=remove_green_screen, inputs=["file", "image"], outputs=None, title="Green Screen Remover")
iface.launch()