Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import cv2 | |
| import numpy as np | |
| def enhance_image(image, method, brightness=0, contrast=1.0): | |
| if image is None: | |
| return None | |
| img = np.array(image, dtype=np.uint8) | |
| if method == "Original": | |
| return img | |
| elif method == "Grayscale": | |
| gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) | |
| return cv2.cvtColor(gray, cv2.COLOR_GRAY2RGB) | |
| elif method == "Histogram Equalization": | |
| gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) | |
| eq = cv2.equalizeHist(gray) | |
| return cv2.cvtColor(eq, cv2.COLOR_GRAY2RGB) | |
| elif method == "Gaussian Blur": | |
| return cv2.GaussianBlur(img, (7, 7), 0) | |
| elif method == "Median Filtering": | |
| return cv2.medianBlur(img, 5) | |
| elif method == "Brightness/Contrast": | |
| adjusted = cv2.convertScaleAbs(img, alpha=contrast, beta=brightness) | |
| return adjusted | |
| else: | |
| return img | |
| def process(image, method, brightness, contrast): | |
| return enhance_image(image, method, brightness, contrast) | |
| with gr.Blocks() as demo: | |
| gr.Markdown("## 🖼️ Image Enhancement & Restoration GUI") | |
| with gr.Row(): | |
| with gr.Column(): | |
| img_input = gr.Image(type="numpy", label="Upload Image") | |
| method = gr.Radio( | |
| ["Original", "Grayscale", "Histogram Equalization", | |
| "Gaussian Blur", "Median Filtering", "Brightness/Contrast"], | |
| value="Original", label="Choose Method" | |
| ) | |
| brightness = gr.Slider(-100, 100, value=0, label="Brightness") | |
| contrast = gr.Slider(0.5, 3.0, value=1.0, step=0.1, label="Contrast") | |
| btn = gr.Button("Enhance Image") | |
| with gr.Column(): | |
| img_output = gr.Image(type="numpy", label="Output Image") | |
| btn.click(fn=process, inputs=[img_input, method, brightness, contrast], outputs=img_output) | |
| img_input = gr.Image(type="numpy", label="Upload Image", value="demo.png") | |
| demo.launch() | |