resim2 / app.py
acarz's picture
Create app.py
c75f8be verified
raw
history blame contribute delete
860 Bytes
import gradio as gr
import cv2
import numpy as np
from PIL import Image
def image_to_sketch(image):
img = np.array(image.convert("RGB"))
gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
inverted = 255 - gray
blurred = cv2.GaussianBlur(inverted, (21, 21), 0)
def dodge(front, back):
return cv2.divide(front, 255 - back, scale=255)
sketch = dodge(gray, blurred)
return [image, Image.fromarray(sketch)]
# Create Gradio interface
demo = gr.Interface(
fn=image_to_sketch,
inputs=gr.Image(type="pil", label="Upload a portrait image"),
outputs=[
gr.Image(label="Original"),
gr.Image(label="Sketch"),
],
title="🖌️ Image to Sketch Converter",
description="Upload a portrait image and watch it turn into a pencil sketch!",
examples=None
)
if __name__ == "__main__":
demo.launch()