Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import cv2 | |
| import numpy as np | |
| from PIL import Image | |
| # Function to convert image to sketch | |
| def convert_to_sketch(image, blur_intensity, sketch_intensity): | |
| # Convert image to grayscale | |
| gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) | |
| # Invert the grayscale image | |
| inverted_gray_image = 255 - gray_image | |
| # Apply Gaussian Blur with adjustable intensity | |
| blurred_image = cv2.GaussianBlur(inverted_gray_image, (blur_intensity, blur_intensity), 0) | |
| # Invert the blurred image | |
| inverted_blurred_image = 255 - blurred_image | |
| # Create the pencil sketch image with adjustable intensity | |
| sketch_image = cv2.divide(gray_image, inverted_blurred_image, scale=sketch_intensity) | |
| return sketch_image | |
| # Streamlit app | |
| st.title("ColorifyAI Sketch Generator") | |
| st.write("Upload an image to convert it into a sketch!") | |
| # Add the logo | |
| logo_url = "https://huggingface.co/spaces/Felguk/ColorifyAI/resolve/main/unnamed.jpg" | |
| st.image(logo_url, width=200) # Adjust the width as needed | |
| # Upload image - allow all image formats | |
| uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png", "bmp", "gif", "tiff", "webp"]) | |
| # Add settings in the sidebar | |
| st.sidebar.title("Settings") | |
| blur_intensity = st.sidebar.slider("Blur Intensity", min_value=1, max_value=99, value=21, step=2) | |
| sketch_intensity = st.sidebar.slider("Sketch Intensity", min_value=100, max_value=300, value=256, step=10) | |
| if uploaded_file is not None: | |
| # Read the image | |
| image = Image.open(uploaded_file) | |
| image = np.array(image) | |
| # Convert the image to sketch using the selected settings | |
| sketch_image = convert_to_sketch(image, blur_intensity, sketch_intensity) | |
| # Display the original image | |
| st.image(image, caption='Original Image', use_column_width=True) | |
| # Display the sketch image | |
| st.image(sketch_image, caption='Sketch Image', use_column_width=True) |