sketchimage / app.py
gilrmdhn's picture
Update app.py
8bc65c5 verified
raw
history blame
1.16 kB
import gradio as gr
import cv2
import numpy as np
from PIL import Image
import io
def convert_to_sketch(image):
img = np.array(image)
# Ubah gambar ke grayscale
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Inversi warna
inverted_image = cv2.bitwise_not(gray_image)
# Terapkan gaussian blur
blurred = cv2.GaussianBlur(inverted_image, (21, 21), sigmaX=0, sigmaY=0)
# Inversi hasil blur
inverted_blurred = cv2.bitwise_not(blurred)
# Buat sketsa
sketch = cv2.divide(gray_image, inverted_blurred, scale=256.0)
# Konversi sketsa menjadi gambar PIL
pil_image = Image.fromarray(sketch)
# Menyimpan gambar dalam format JPG
img_byte_arr = io.BytesIO()
pil_image.save(img_byte_arr, format="JPEG")
img_byte_arr.seek(0) # Kembali ke awal stream
return img_byte_arr # Gradio akan menangani ini sebagai file gambar
# Interface
gr.Interface(fn=convert_to_sketch,
inputs="image",
outputs=gr.Image(type="pil"),
title="Konversi gambar ke sketsa",
description="Unggah gambar dan dapatkan versi sketsa dalam format JPG").launch()