bestfy / app.py
renatotn7's picture
Update app.py
24e97b8
raw
history blame
5.18 kB
import streamlit as st
import base64
import os.path
import os
import cv2
import random
print(str(int(1.0))
os.system("mkdir _input")
os.system("mkdir _output")
os.system("mkdir _outputf")
os.system("ls")
col1, col2 = st.columns(2)
title = "Melhoria de imagens"
st.title(title)
os.system("ls")
description = "Sistema para automação。"
st.header(description)
article = "<p style='text-align: center'><a href='https://huggingface.co/spaces/akhaliq/GFPGAN/' target='_blank'>clone from akhaliq@huggingface with little change</a> | <a href='https://github.com/TencentARC/GFPGAN' target='_blank'>GFPGAN Github Repo</a></p><center><img src='https://visitor-badge.glitch.me/badge?page_id=akhaliq_GFPGAN' alt='visitor badge'></center>"
uploaded_file = st.file_uploader("Choose a file")
if uploaded_file is not None:
# To read file as bytes:
bytes_data = uploaded_file.getvalue()
st.video(bytes_data)
with open("inputvideo", "wb") as binary_file:
binary_file.write(bytes_data)
vcap = cv2.VideoCapture('inputvideo') # 0=camera
width=0
height=0
if vcap.isOpened():
# get vcap property
width = vcap.get(3) # float `width`
height = vcap.get(4) # float `height`
st.write(str(width)+"x"+str(height))
fps = vcap.get(5)
st.write(str(fps)+" fps")
@st.experimental_memo(suppress_st_warning=True)
def chamada():
percent_complete=0
my_bar = st.progress(0)
percent_complete= percent_complete+ 10
with col1:
my_bar.progress(percent_complete )
#exec=True
# st.write("ffmpeg separando imagens")
#if not os.path.isfile("./_input/imagem-0001.png"):
vcap = cv2.VideoCapture('inputvideo') # 0=camera
width=0
height=0
if vcap.isOpened():
# get vcap property
width = vcap.get(3) # float `width`
height = vcap.get(4) # float `height`
fps = vcap.get(5)
os.system("ffmpeg -i inputvideo -compression_level 10 -pred mixed -pix_fmt rgb24 -sws_flags +accurate_rnd+full_chroma_int -s "+str(int(width))+"x"+str(int(height))+" -r "+str(int(fps))+" ./_input/imagem-%4d.png")
percent_complete= percent_complete+ 30
with col1:
my_bar.progress(percent_complete )
# st.write("testando imagem")
input_img = cv2.imread("./_input/imagem-0002.png" , cv2.IMREAD_COLOR)
input_img= cv2.cvtColor(input_img,cv2.COLOR_BGR2RGB)
with col1:
st.image(input_img)
os.system("ls ./_input")
if 'myVar' not in globals():
myVar=""
# st.write("melhorando faces")
with col2:
with st.spinner('Wait for it...'):
# os.system("pip install git+https://github.com/TencentARC/GFPGAN.git")
os.system("python3 inference_gfpgan.py -i _input -o _output -v 1.3 -s 2")
with col1:
percent_complete= percent_complete+ 30
my_bar.progress(percent_complete )
os.system("ls ./_output")
os.system("echo ----")
os.system("ls ./_output/cmp")
os.system("echo ----")
os.system("ls ./_output/restored_imgs")
os.system("echo ----")
# s 1480x2560
# with col1:
# st.write("recompilando video")
#ffmpeg -r 60 -f image2 -s 1920x1080 -i _output/restored_imgs/imagem-%4d.png -pix_fmt yuv420p ./videoSaida/output.mp4
os.system("ffmpeg -y -r "+fps+" -f image2 -i _output/restored_imgs/imagem-%4d.png -pix_fmt yuv420p ./videoSaida/output.mp4")
os.system("ls ./videoSaida")
#st.video("./videoSaida/output.mp4" )
with col1:
# st.write("preparando para download do video")
percent_complete= percent_complete+ 30
my_bar.progress(percent_complete )
with col2:
with open("./videoSaida/output.mp4", "rb") as file:
st.video(file)
btn = st.download_button(
label="Download video",
data=file,
file_name="output.png",
mime="video/mp4"
)
#st.download_button("download video", data, file_name='output.mp4', mime='video/mp4',)
#stremio
#input_img = cv2.imread("./_output/cmp/imagem-0001_0000.png" , cv2.IMREAD_COLOR)
#input_img = cv2.imread("./_output/cmp/imagem-0001_0000.png" , cv2.IMREAD_COLOR)
with col2:
# st.write("demonstrando imagem restaurada")
input_img = cv2.imread("./_output/restored_imgs/imagem-0002.png" , cv2.IMREAD_COLOR)
input_img= cv2.cvtColor(input_img,cv2.COLOR_BGR2RGB)
st.image(input_img)
exec=False
#return Image.fromarray(restored_faces[0][:,:,::-1])
load = st.checkbox("load")
if load:
chamada()
#st.button('Imagem',on_click=inference)
exec=True