Spaces:
Sleeping
Sleeping
import streamlit as st | |
import cv2 | |
import numpy as np | |
from PIL import Image | |
def image_to_sketch(image): | |
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) | |
inverted_image = 255 - gray_image | |
blurred_image = cv2.GaussianBlur(inverted_image, (21, 21), 0) | |
inverted_blurred = 255 - blurred_image | |
sketch = cv2.divide(gray_image, inverted_blurred, scale=256.0) | |
return sketch | |
st.title("Image to Sketch Converter") | |
uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"]) | |
if uploaded_file is not None: | |
image = np.array(Image.open(uploaded_file)) | |
st.image(image, caption='Uploaded Image', use_column_width=True) | |
st.write("") | |
st.write("Converting...") | |
sketch = image_to_sketch(image) | |
st.image(sketch, caption='Sketch', use_column_width=True) | |
# Provide a download link for the sketch image | |
im_pil = Image.fromarray(sketch) | |
im_pil.save("sketch.png") | |
with open("sketch.png", "rb") as file: | |
btn = st.download_button( | |
label="Download Sketch", | |
data=file, | |
file_name="sketch.png", | |
mime="image/png" | |
) | |