embed / app.py
om-app's picture
Update app.py
f0a577c
raw
history blame
934 Bytes
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()