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()