Spaces:
Runtime error
Runtime error
| import cv2 | |
| import numpy as np | |
| import gradio as gr | |
| from PIL import Image as PILImage | |
| def threshold_segmentation_gradio(image, threshold_value): | |
| """ | |
| Applies threshold segmentation and displays results in a Gradio interface. | |
| Args: | |
| image_path: Path to the image file. | |
| threshold_value: Threshold value for binarization. | |
| Returns: | |
| A tuple of: | |
| - Thresholded image: Gradio Image component. | |
| - Bright pixel count: Gradio Label component. | |
| - Dim pixel count: Gradio Label component. | |
| - Total pixel count: Gradio Label component. | |
| """ | |
| # Convert PIL image to grayscale OpenCV format (assuming RGB format) | |
| image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2GRAY) | |
| # Apply thresholding | |
| _, thresholded_image = cv2.threshold(image, threshold_value, 255, cv2.THRESH_BINARY) | |
| # Count bright and dim pixels | |
| bright_count = cv2.countNonZero(thresholded_image) | |
| dim_count = thresholded_image.size - bright_count | |
| total_count = thresholded_image.size | |
| return thresholded_image,bright_count, dim_count, total_count | |
| if __name__ == "__main__": | |
| # Launch the Gradio interface | |
| inputs = [gr.Image(type="pil"), gr.Slider(0, 255)] | |
| outputs = [gr.Image(label="Thresholded Image"),gr.Label(label="Bright Pixels"), gr.Label(label="Dim Pixels"), gr.Label(label="Total Pixels")] | |
| # Launch the Gradio interface | |
| interface = gr.Interface(fn=threshold_segmentation_gradio, inputs=inputs, outputs=outputs,css="footer { visibility: hidden }") | |
| interface.launch() |