File size: 1,000 Bytes
077d557 de2aa9b ba4d1a9 e50e349 e6399c3 ba4d1a9 caf9fa8 b4f77e9 ba4d1a9 077d557 6ef9294 7d9cecc 6ef9294 e50e349 90ab22e e50e349 6ef9294 90ab22e 6ef9294 e50e349 90ab22e 5be44ed b4f77e9 90ab22e e50e349 6ef9294 5be44ed ce6434e 9444948 5be44ed |
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 29 30 31 32 33 34 35 36 37 38 39 40 41 |
import spaces
import gradio as gr
import cv2
import numpy as np
from PIL import Image
from transparent_background import Remover
remover = Remover()
processed_frames = 0
@spaces.GPU
def doo(video):
cap = cv2.VideoCapture(video)
fps = cap.get(cv2.CAP_PROP_FPS)
writer = None
while cap.isOpened():
ret, frame = cap.read()
if ret is False:
break
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
img = Image.fromarray(frame).convert('RGB')
if writer is None:
writer = cv2.VideoWriter('output.mp4', cv2.VideoWriter_fourcc(*'mp4v'), fps, img.size)
processed_frames += 1
print(f"Processing: {processed_frames}")
out = remover.process(img, type='green')
writer.write(cv2.cvtColor(np.array(out), cv2.COLOR_BGR2RGB))
cap.release()
writer.release()
return 'output.mp4'
iface = gr.Interface(fn=doo, inputs="video", outputs="video")
iface.launch() |