import gradio as gr from PIL import Image import os import subprocess import glob def get_latest_file(directory): all_items = glob.glob(os.path.join(directory, '*')) folders = [item for item in all_items if os.path.isdir(item)] files = [item for item in all_items if os.path.isfile(item)] if folders: latest_folder = max(folders, key=os.path.getmtime) return latest_folder elif files: latest_file = max(files, key=os.path.getmtime) return latest_file else: return None def save_image(image): directory = './testdata' if not os.path.exists(directory): os.makedirs(directory) image.save(os.path.join(directory, 'new_image_1.jpg')) def process_image(image): pil_image = Image.fromarray(image) save_image(pil_image) program_path = './test.py' subprocess.run(['python3', program_path, '--data_path_test=./testdata']) directory_image = './flat' latest_file = get_latest_file(get_latest_file(directory_image)) image_path = f'{latest_file}/144/test/new_image_1.jpg' new_image = Image.open(image_path) return new_image iface = gr.Interface(fn=process_image, inputs="image", outputs="image", title="Document dewarping platform", description="This page recognises wrinkled documents and processes them into flat ones, you can upload your local images and download the processed files.", allow_flagging="never" ) iface.launch()