Vidula01's picture
Update app.py
9208c1e verified
Raw
History Blame Contribute Delete
1.96 kB
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()