Abu1998's picture
Update app.py
2cd83c7 verified
raw
history blame
1.48 kB
import gradio as gr
from PIL import Image as PILImage
import numpy as np
from depth_map_generator import generate_depth_map
from depth_segmentation import segment_image_by_depth
def on_process(image, num_segments):
# Convert the NumPy array to a PIL Image
if isinstance(image, np.ndarray):
image = PILImage.fromarray(image)
# Save the uploaded image
original_img_path = "original.jpg"
image.save(original_img_path)
# Generate the depth map
depth_map_path = generate_depth_map(original_img_path)
# Perform depth segmentation
segmented_images = segment_image_by_depth(original_img_path, depth_map_path, num_segments)
# Return the segmented images and file paths for download
return segmented_images, segmented_images
# Gradio Interface
with gr.Blocks() as demo:
gr.Markdown("# Depth Map Segmentation Tool")
with gr.Row():
with gr.Column():
image_input = gr.Image(label="Upload Original Image")
num_segments = gr.Slider(label="Number of Segments", minimum=3, maximum=5, step=1, value=3)
process_button = gr.Button("Process Image")
with gr.Column():
output_gallery = gr.Gallery(label="Segmented Images").style(grid=[3, 2])
download_button = gr.Files(label="Download All", file_count="multiple")
process_button.click(on_process, [image_input, num_segments], [output_gallery, download_button])
demo.launch()