multiple / app.py
yashzambre's picture
Update app.py
ee05941
import gradio as gr
import cv2
import numpy as np
# Define a function that performs the image operation with adjustable blending weight
def perform_image_operation(images, blending_weight=0.5):
# Convert the Gradio input images to NumPy arrays
images = [np.array(img) for img in images]
# Perform the image operation (e.g., blending)
result_image = images[0].copy()
for img in images[1:]:
result_image = cv2.addWeighted(result_image, 1 - blending_weight, img, blending_weight, 0)
# Convert the result image to PIL format for Gradio display
result_pil_image = cv2.cvtColor(result_image, cv2.COLOR_BGR2RGB)
return result_pil_image
# Define the Gradio interface with multiple file uploads and an adjustable blending weight slider
iface = gr.Interface(
fn=perform_image_operation,
inputs=[
gr.File(type="image", label="Image 1", multiple=True),
gr.File(type="image", label="Image 2", multiple=True),
gr.File(type="image", label="Image 3", multiple=True),
gr.File(type="image", label="Image 4", multiple=True),
gr.File(type="image", label="Image 5", multiple=True),
gr.File(type="image", label="Image 6", multiple=True),
gr.File(type="image", label="Image 7", multiple=True),
gr.File(type="image", label="Image 8", multiple=True),
gr.Slider(minimum=0, maximum=1, default=0.5, label="Blending Weight"),
],
outputs=gr.outputs.Image(type="pil", label="Blended Image")
)
# Start the Gradio app
iface.launch()