Image2sketch / Convert.py
Besimplestudio's picture
Create Convert.py
d6f79e4 verified
import cv2
from PIL import Image
import numpy as np
import gradio as gr
# Convert image to sketch function
def convert_to_sketch(img, blur_strength):
img = np.array(img) # Convert PIL Image to numpy array
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img_inverted = cv2.bitwise_not(img_gray)
img_blur = cv2.GaussianBlur(img_inverted, (blur_strength, blur_strength), sigmaX=0, sigmaY=0)
img_blend = cv2.divide(img_gray, 255 - img_blur, scale=256)
white_background = 255 * np.ones_like(img_blend)
sketch_with_bg = cv2.addWeighted(img_blend, 1, white_background, 1, 0)
return sketch_with_bg
# Gradio interface function
def sketch_interface(image, blur_strength):
sketch = convert_to_sketch(image, blur_strength)
return Image.fromarray(sketch)
# Create Gradio interface
interface = gr.Interface(
fn=sketch_interface,
inputs=[gr.Image(type="pil"), gr.Slider(1, 51, step=2, label="Blur Strength", value=21)],
outputs=gr.Image(type="pil"),
title="Cartoon to Sketch Converter",
description="Upload an image to convert it into a sketch, and adjust the blur strength for different effects."
)
# Launch the Gradio app
interface.launch()