Spaces:
Runtime error
Runtime error
import gradio as gr | |
import opencv | |
import numpy as np | |
import watershed # Your Python bindings module | |
def segment_image(input_image): | |
# Convert the image received from Gradio into a format suitable for our C++ function | |
is_success, im_buf_arr = cv2.imencode(".jpg", input_image) | |
byte_im = im_buf_arr.tobytes() | |
# You can save this to a file or directly pass it if your C++ function can handle byte streams | |
with open("temp_input.jpg", "wb") as f: | |
f.write(byte_im) | |
# Call the C++ watershed_segmentation function | |
watershed.watershed_segmentation("temp_input.jpg", "output.jpg") | |
# Read the output image to display in Gradio | |
output_img = cv2.imread("output.jpg") | |
# Convert from BGR (OpenCV format) to RGB (for displaying in Gradio) | |
output_img = cv2.cvtColor(output_img, cv2.COLOR_BGR2RGB) | |
return output_img | |
# Define Gradio interface | |
interface = gr.Interface( | |
fn=segment_image, | |
inputs=gr.inputs.Image(type="numpy", label="Input Image"), | |
outputs=gr.outputs.Image(type="numpy", label="Segmented Image"), | |
live=True, | |
title="Watershed Image Segmentation", | |
description="Upload an image for watershed segmentation." | |
) | |
interface.launch() | |