Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import numpy as np | |
| from tqdm import trange | |
| from src.part1 import create_Gaussian_kernel, create_hybrid_image | |
| input_pictures_examples = [ | |
| ["./data/1a_dog.bmp", "./data/1b_cat.bmp"], | |
| ["./data/2a_motorcycle.bmp", "./data/2b_bicycle.bmp"], | |
| ["./data/3a_plane.bmp", "./data/3b_bird.bmp"], | |
| ["./data/4a_einstein.bmp", "./data/4b_marilyn.bmp"], | |
| ["./data/5a_submarine.bmp", "./data/5b_fish.bmp"], | |
| ["./data/Message+1.png", "./data/Message+2.png", 5], | |
| ] | |
| def action_hybrid_image(a, b, c): | |
| # check input is None | |
| if a is None or b is None or c is None: | |
| return None, None, None | |
| l, h, lh = create_hybrid_image(a / 255, b / 255, c / 255) | |
| return (l * 255).astype(np.uint8), ((h + 0.5) * 255).astype(np.uint8), (lh * 255).astype(np.uint8) | |
| def action_hybrid_matrix(a, b): | |
| result_matrix = [] | |
| for i in trange(1, 8): | |
| kernel = create_Gaussian_kernel(i) | |
| l, h, lh = action_hybrid_image(a, b, kernel) | |
| result_matrix.append(lh) | |
| for i in trange(1, 8): | |
| kernel = create_Gaussian_kernel(i) | |
| l, h, lh = action_hybrid_image(b, a, kernel) | |
| result_matrix.append(lh) | |
| return result_matrix | |
| with gr.Blocks() as app: | |
| gr.Markdown("## Input") | |
| with gr.Row() as uploader: | |
| # allow user to upload 2 images TODO: Limit picture size, button: exchange pictures | |
| image1 = gr.Image(label="Image 1", interactive=True) | |
| image2 = gr.Image(label="Image 2", interactive=True) | |
| submit = gr.Button("Submit") | |
| gr.Markdown("## Output") | |
| # output | |
| with gr.Row() as output: | |
| h_1_2_1 = gr.Image(label="Hybrid Image_121") | |
| h_1_2_2 = gr.Image(label="Hybrid Image_122") | |
| h_1_2_3 = gr.Image(label="Hybrid Image_123") | |
| h_1_2_4 = gr.Image(label="Hybrid Image_124") | |
| h_1_2_5 = gr.Image(label="Hybrid Image_125") | |
| h_1_2_6 = gr.Image(label="Hybrid Image_126") | |
| h_1_2_7 = gr.Image(label="Hybrid Image_127") | |
| with gr.Row() as exchanged: | |
| h_2_1_1 = gr.Image(label="Hybrid Image_211") | |
| h_2_1_2 = gr.Image(label="Hybrid Image_212") | |
| h_2_1_3 = gr.Image(label="Hybrid Image_213") | |
| h_2_1_4 = gr.Image(label="Hybrid Image_214") | |
| h_2_1_5 = gr.Image(label="Hybrid Image_215") | |
| h_2_1_6 = gr.Image(label="Hybrid Image_216") | |
| h_2_1_7 = gr.Image(label="Hybrid Image_217") | |
| submit.click( | |
| action_hybrid_matrix, | |
| inputs=[image1, image2], | |
| outputs=[h_1_2_1, h_1_2_2, h_1_2_3, h_1_2_4, h_1_2_5, h_1_2_6, h_1_2_7, | |
| h_2_1_1, h_2_1_2, h_2_1_3, h_2_1_4, h_2_1_5, h_2_1_6, h_2_1_7] | |
| ) | |
| gr.Markdown("## Use Examples") | |
| gr.Examples( | |
| examples=input_pictures_examples, | |
| inputs=[image1, image2], | |
| # outputs=txt_3, | |
| # fn=combine, | |
| # cache_examples=True, # cache examples to local storage | |
| ) | |
| app.launch(server_port=3030) | |