import streamlit as st from PIL import Image, ImageOps import numpy as np import cv2 def remove_colors(image: Image.Image) -> Image.Image: """ Convert an image to grayscale. """ gray_image = ImageOps.grayscale(image) return gray_image def reverse_edits(image: Image.Image) -> Image.Image: """ Attempt to reverse edits by applying a smoothing filter to reduce harsh effects. Note: Fully reversing edits is context-dependent and may not be completely achievable. """ # Convert to OpenCV format image_np = np.array(image) image_cv = cv2.cvtColor(image_np, cv2.COLOR_RGB2BGR) # Apply smoothing to remove harsh edits restored_image = cv2.medianBlur(image_cv, 5) # Convert back to PIL format restored_image_pil = Image.fromarray(cv2.cvtColor(restored_image, cv2.COLOR_BGR2RGB)) return restored_image_pil # Streamlit app UI st.title("Image Processing: Remove Colors & Reverse Edits") # File uploader uploaded_file = st.file_uploader("Upload an image", type=["jpg", "jpeg", "png"]) if uploaded_file is not None: # Load the image image = Image.open(uploaded_file) st.image(image, caption="Original Image", use_column_width=True) # Process the image st.subheader("Processed Images") grayscale_image = remove_colors(image) st.image(grayscale_image, caption="Grayscale Image", use_column_width=True) restored_image = reverse_edits(image) st.image(restored_image, caption="Edit-Reversed Image", use_column_width=True)