Afeefa123's picture
Update app.py
284d236 verified
import streamlit as st
import cv2
import numpy as np
from PIL import Image
import io
# Page configuration
st.set_page_config(
page_title="AI Image Enhancement Tool",
page_icon="🖼️",
layout="wide"
)
st.title("🖼️ AI Based Image Enhancement Application")
st.markdown("Enhance brightness, contrast and remove noise from your images in real-time.")
# Sidebar controls
st.sidebar.header("Enhancement Controls")
brightness = st.sidebar.slider("Brightness (Beta)", 0, 100, 50)
contrast = st.sidebar.slider("Contrast (Alpha)", 1.0, 3.0, 1.5)
blur = st.sidebar.slider("Noise Reduction (Gaussian Blur)", 1, 15, 5, step=2)
uploaded_file = st.file_uploader("Upload an Image", type=["jpg","jpeg","png"])
def enhance_image(image, alpha, beta, blur_value):
image_np = np.array(image)
image_np = cv2.cvtColor(image_np, cv2.COLOR_RGB2BGR)
enhanced = cv2.convertScaleAbs(image_np, alpha=alpha, beta=beta)
denoised = cv2.GaussianBlur(enhanced, (blur_value, blur_value), 0)
final = cv2.cvtColor(denoised, cv2.COLOR_BGR2RGB)
return final
if uploaded_file is not None:
image = Image.open(uploaded_file)
col1, col2 = st.columns(2)
with col1:
st.subheader("Original Image")
st.image(image, use_column_width=True)
processed = enhance_image(image, contrast, brightness, blur)
with col2:
st.subheader("Enhanced Image")
st.image(processed, use_column_width=True)
result = Image.fromarray(processed)
buf = io.BytesIO()
result.save(buf, format="PNG")
byte_im = buf.getvalue()
st.download_button(
label="📥 Download Enhanced Image",
data=byte_im,
file_name="enhanced_image.png",
mime="image/png"
)
st.markdown("---")
st.markdown("Built using Streamlit + OpenCV")