|
|
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. |
|
|
""" |
|
|
|
|
|
image_np = np.array(image) |
|
|
image_cv = cv2.cvtColor(image_np, cv2.COLOR_RGB2BGR) |
|
|
|
|
|
|
|
|
restored_image = cv2.medianBlur(image_cv, 5) |
|
|
|
|
|
|
|
|
restored_image_pil = Image.fromarray(cv2.cvtColor(restored_image, cv2.COLOR_BGR2RGB)) |
|
|
return restored_image_pil |
|
|
|
|
|
|
|
|
st.title("Image Processing: Remove Colors & Reverse Edits") |
|
|
|
|
|
|
|
|
uploaded_file = st.file_uploader("Upload an image", type=["jpg", "jpeg", "png"]) |
|
|
|
|
|
if uploaded_file is not None: |
|
|
|
|
|
image = Image.open(uploaded_file) |
|
|
st.image(image, caption="Original Image", use_column_width=True) |
|
|
|
|
|
|
|
|
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) |
|
|
|