ai1 / app.py
stevafernandes's picture
Update app.py
b964e7d verified
Raw
History Blame Contribute Delete
2.28 kB
import gradio as gr
from pathlib import Path
# -----------------------------
# Image paths
# -----------------------------
BASE_DIR = Path(__file__).parent
OUTPUT_IMAGES = [
BASE_DIR / "out1.png",
BASE_DIR / "out2.png",
BASE_DIR / "out3.png",
BASE_DIR / "out4.png",
BASE_DIR / "out5.png",
]
# -----------------------------
# Analyze function
# -----------------------------
def analyze_image(input_image):
"""
The user uploads an input image.
When Analyze is clicked, the app returns the five preloaded output images.
"""
if input_image is None:
raise gr.Error("Please upload an input image before clicking Analyze.")
results = []
for img_path in OUTPUT_IMAGES:
if img_path.exists():
results.append(str(img_path))
else:
raise gr.Error(f"Missing image file: {img_path.name}")
return results
# -----------------------------
# Custom CSS
# -----------------------------
custom_css = """
#analyze-btn {
background: black !important;
color: white !important;
border: 1px solid black !important;
}
#analyze-btn:hover {
background: #222222 !important;
color: white !important;
}
"""
# -----------------------------
# Gradio Interface
# -----------------------------
with gr.Blocks(title="Cell Image Analysis", css=custom_css) as demo:
gr.Markdown(
"""
# Cell Image Analysis Demo
"""
)
with gr.Row():
with gr.Column():
input_image = gr.Image(
label="Upload Input Image",
type="pil",
height=400
)
analyze_button = gr.Button(
"Analyze",
variant="primary",
elem_id="analyze-btn"
)
with gr.Column():
output_gallery = gr.Gallery(
label="Analysis Output Images",
columns=2,
rows=3,
height="auto",
object_fit="contain"
)
analyze_button.click(
fn=analyze_image,
inputs=input_image,
outputs=output_gallery
)
# -----------------------------
# Launch app
# -----------------------------
if __name__ == "__main__":
demo.launch()