File size: 922 Bytes
4336de4
 
 
 
b9edeeb
4336de4
 
b9edeeb
4336de4
b9edeeb
4336de4
b9edeeb
4336de4
b9edeeb
4336de4
b9edeeb
4336de4
b9edeeb
4336de4
b9edeeb
4336de4
b9edeeb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
import cv2
import numpy as np
from PIL import Image
import os

def convert_to_sketch(image):
    img = np.array(image)

    gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    inverted_image = cv2.bitwise_not(gray_image)

    blurred = cv2.GaussianBlur(inverted_image, (21, 21), sigmaX=0, sigmaY=0)

    inverted_blurred = cv2.bitwise_not(blurred)

    sketch = cv2.divide(gray_image, inverted_blurred, scale=256.0)

    sketch_image = Image.fromarray(sketch)

    output_path = "sketch_result.png"
    sketch_image.save(output_path)

    return sketch_image, output_path

# Interface
gr.Interface(
    fn=convert_to_sketch,
    inputs="image",
    outputs=[
        gr.Image(label="Pratinjau Sketsa"),
        gr.File(label="Unduh Gambar Sketsa")
    ],
    title="Konversi gambar ke sketsa",
    description="Unggah gambar dan dapatkan versi sketsa sebagai pratinjau dan file unduhan"
).launch()