UESTC-CVExperiment1 / webpage_martix.py
InEase's picture
Upload Files
b78dbf0
Raw
History Blame Contribute Delete
2.9 kB
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)