File size: 1,534 Bytes
127248d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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)